Démarrage d’un projet Django

Démarrage d'un projet Django

Django est un framework Web Python de haut niveau qui encourage un développement rapide et une conception propre et pragmatique.

Dans ce didacticiel, nous répondrons à la question“How do I setup a Django (1.5, 1.6, 1.7, or 1.8) project from scratch?” En d’autres termes, vous apprendrez à installer Django et à configurer la structure de votre projet Django.

Voici comment tirer le meilleur parti de ce didacticiel:

  1. Lisez les sections Introduction et Configuration.

  2. Choisissez ensuite votre poison - Django 1.5, 1.6, 1.7, 1.8 - pour configurer un projet Django.

  3. Après la configuration initiale du projet, descendez dans la section Créer une application pour configurer une application agréable et facile.

  4. Ensuite, extrayez le flux de travail récapitulatif pour un guide de démarrage rapide d'un projet Django.

Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF) qui vous montre des trucs et astuces ainsi que les pièges courants à éviter lors de la création d'applications Web Python + Django.

Update: Nous avons pointé le domainerealdjango.com vers ce message afin que vous puissiez le retrouver facilement.

introduction

Ce tutoriel répond à la question,“How do I setup a Django Project from scratch?” Puisque vous lisez ceci, je suppose (err, j'espère) que vous savez que Django est un framework Web Python conçu pour un développement Web rapide. Nous allons passer en revue la configuration, détaillant les procédures d'installation de base de Django et les dépendances requises ainsi que quelques bibliothèques / extensions supplémentaires pour vous aider à commencer à développer ASAP.

Nous examinerons également un flux de travail de base que vous pouvez utiliser dès que la structure de votre projet est configurée.

Enfin, assurez-vous de regarder les vidéos suivantes:

Bien que ces vidéos soient spécifiques à Django 1.5, elles vous aideront également à comprendre le flux de travail de base pour Django 1.6, 1.7 et 1.8.

Exigences du didacticiel

Vous devriez avoir une certaine expérience Python et connaître les commandes bash Unix de base. Si vous n’avez jamais utilisé la ligne de commande auparavant, familiarisez-vous avec les commandes suivantes:pwd,cd,ls,rm etmkdir.

Par souci de simplicité, tous les exemples utilisent l'invite de style Unix:

$ python manage.py runserver

(Le signe dollar ne fait pas partie de la commande.)

Équivalent Windows:

C:\> python manage.py runserver

Installer

Ce dont vous avez besoin pour un environnement de développement Django basique:

  1. Python 2.7.x ou 3.4.x

  2. easy_install et Pip

  3. Git

  4. virtualenv

  5. Django

  6. Base de données (SQLite, MySQL, PostgreSQL, MongoDB, etc.)

  7. Sud (pour les versions de Django antérieures à 1.7)

  8. Éditeur de texte (Sublime, vim, Komodo, gedit)

Note: ce didacticiel utilise la version 2.7.8 de Python.

Python

Les environnements Unix sont préinstallés avec Python. Pour vérifier votre version Python, exécutez la commande:

$ python -V
Python 2.7.8
$ python3 -V
Python 3.4.2

Si vous disposez déjà d'une version 2.7.x, passez à l'étape suivante. Sinon,download et installez la dernière version 2.7.x spécifique à votre système d'exploitation.

easy_install et pip

Easy_install et pip sont tous deux des gestionnaires de packages Python, ce qui facilitemuch l'installation et la mise à niveau des packages Python (et des dépendances de package).

Pour télécharger easy_install, accédez au fichierPython Package Index (PyPI). Vous devez télécharger setuptools, qui comprend easy_install. Téléchargez le package egg (.egg), puis installez-le directement à partir du fichier.

Pip, quant à lui, est un wrapper qui repose sur easy_install, vous devez donc avoir la configuration easy_install et travailler avant de pouvoir installer pip. Une fois easy_install installé, exécutez la commande suivante pour installer pip:

$ easy_install pip

Git

Pourversion control, nous utiliserons git. Vous pouvez vérifier votre version actuelle, si vous avez déjà installé git, avec la commande suivante:

$ git --version
git version 2.3.0

Si vous n'avez pas une version supérieure à 1.7.x installée, veuillezdownload la dernière version.

MySQL

SQLite est livré pré-installé avec Python, et la plupart des didacticiels utilisent SQLite - alors poussons-nous un peu et utilisons MySQL à la place.

Tout d'abord, installez MySQL à partir dehere.

Ensuite, démarrez le serveur, puis configurez une nouvelle base de données et un utilisateur:

$ mysql.server start
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> quit
Bye

virtualenv

Il est courant d’utiliser unvirtualenv (environnement virtuel) pour vos projets Python afin de créer des environnements de développement autonomes (également appelés «sandbox»). Le but de virtualenv est d'empêcher différentes versions de bibliothèques / packages de se gâcher.

Considérez virtualenv comme un conteneur complètement isolé sur votre ordinateur, où vous pouvez utiliser n'importe quelle version de Python et installer des bibliothèques / packages et cela n'affectera rien en dehors de ce conteneur. C'est comme une pièce isolée et insonorisée dans votre maison où vous pouvez crier aussi fort que vous le souhaitez, à propos de tout ce que vous voulez, et personne d'autre en dehors de cette pièce ne peut l'entendre.

Installez virtualenv avec la commande suivante:

$ pip install virtualenv

Django 1.5

Lancée pour la première fois le 26 février 2013, les nouvelles fonctionnalités les plus notables incluent:

  1. Configurable User Model: Au lieu d'être obligé d'utiliser la définition de Django d'un «utilisateur», vous pouvez maintenant rouler votre propre modèle d'utilisateur, en créant des champs personnalisés, comme - des liens vers des profils sociaux, une date de naissance, une couleur préférée, etc.

  2. Python 3 Support: Django suggère de ne pas utiliser Python 3 en production pour l'instant, car le support est encore «expérimental». Cependant, cette fonctionnalité est énorme pour la communauté Python dans son ensemble, aidant à mettre encore plus de pression pour mirage au Python 3 bien amélioré.

Vous voulez lire les notes de version complètes? Découvrez les modifications officielles de Djangohere.

La dernière version est arrivée le 2 janvier 2015:v1.5.12

Consultez les vidéos accompagnant ce didacticiel:

Installation de Django

Configurez votre structure de développement:

$ mkdir django15_project
$ cd django15_project
$ virtualenv env
$ source env/bin/activate

Vous devriez voir(env) avant votre invite,(env)$, indiquant que vous exécutez dans le virtualenv «env».

Pour quitter virtualenv, tapez la commande suivante:

$ deactivate

Réactivez ensuite lorsque vous êtes prêt à retravailler.

Installons Django:

$ pip install django==1.5.12

Vous pouvez vérifier la version en exécutant les commandes suivantes:

>>>

$ python
>>> import django
>>> django.get_version()
'1.5.12'

Configuration du projet

Configurer le projet Django

$ django-admin.py startproject my_django15_project

Cela crée un nouveau répertoire appelé «my_django15_project» avec le répertoire et les structures de base de Django:

├── manage.py
└── my_django15_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Contrôle de version

Avant de commencer tout développement, mettez votre projet sous contrôle de version. Tout d'abord, ajoutez un nouveau fichier appelé.gitignore dans votre répertoire «django15_project», qui est utilisé pour ignorer l'ajout de fichiers inutiles au dépôt git.

Ajoutez ce qui suit au fichier:

env
*.DS_Store
*.pyc
__pycache__

Maintenant, initialisez (ou créez) un nouveau dépôt Git et ajoutez vos modifications à la mise en scène, puis au dépôt local.

$ git init
$ git add -A
$ git commit -am "initial commit"

Si vous utilisez BitBucket ou GitHub (fortement recommandé), POUSSEZ vos fichiers vers votre référentiel central.

Paramètres de la base de données

Tout d'abord, installez MySQL-python, qui est un connecteur de base de données pour Python:

$ pip install MySQL-python

Modifiez votre fichiersettings.py dans votre répertoire «my_django15_project» pour ajouter les informations suivantes sur votre base de données que vous avez configurée précédemment:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Créez vos tables de base de données et configurez un superutilisateur:

$ cd my_django15_project
$ python manage.py syncdb

Lancez le serveur de développement:

$ python manage.py runserver

Vous devriez voir la sortie suivante si Django et la base de données sont correctement configurés:

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.5, using settings 'my_django15_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Pointez votre navigateur surhttp://127.0.0.1:8000 et vous devriez voir le Django "Cela a fonctionné!" page.

De retour dans votre terminal, tuez le serveur en appuyant sur CONTROL-C.

Sud

South est utilisé pour gérer les modifications de vos tables de base de données. À mesure que votre application se développe et que vous devez ajouter un champ à une table spécifique, par exemple, vous pouvez simplement apporter des modifications à la base de données via des migrations avec South. Cela rend la viemuch plus facile.

Installez Sud:

$ pip install south

gel de pip

Maintenant que toutes vos bibliothèques sont installées, utilisez la commande suivante pour créer un enregistrement des bibliothèques installées dans le répertoire "my_django15_project":

$ pip freeze > requirements.txt

Cecommand est incroyablement utile si vous avez besoin de recréer votre projet à partir de zéro et avez besoin de connaître les bibliothèques / versions exactes que vous devez installer.

Validez vos nouvelles modifications dans Git.

Configurez votre application Django

Créez votre nouvelle application:

$ python manage.py startapp myapp

La structure de votre projet devrait maintenant ressembler à ceci:

├── manage.py
├── my_django15_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Mettez à jour INSTALLED_APPS dans votre fichiersettings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

Ici, nous avons activé l'administrateur,'django.contrib.admin', et ajouté les applications,'myapp' et'south'.

Ouvrezurls.py et décommentez ces trois lignes:

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

Synchronisez à nouveau votre base de données:

$ python manage.py syncdb

Créez un fichier de migration de base de données avec South:

$ python manage.py schemamigration myapp --initial

Migrez les modifications de la base de données:

$ python manage.py migrate myapp

Lancez le serveur (python manage.py runserver), puis accédez àhttp://127.0.0.1:8000/admin. Saisissez le nom d'utilisateur et le mot de passe de votre superutilisateur pour vous connecter à la page d'administration.

Engagez-vous à Git. Par exemple:

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin"

Utiliser git, la bonne façon

NOTE: Cette section est assez avancée et complètement optionnelle. Si c'est la première fois que vous configurez Django, vous pouvez ignorer cette section.

Si vous n'utilisez pas GitHub ou Bitbucket comme référentiel central, vous devez créer une branche distincte de votre référentiel local pour le développement.

Tout d'abord, créez un nouveau répertoire appelé «dev» dans votre répertoire «django15_project», naviguez dans le répertoire nouvellement créé, puis clonez (copiez) l'intégralité de votre projet Django:

$ git clone /path/to/your/project/

Par exemple:/Users/michaelherman/desktop/django15_project

Cette commande crée une copie exacte de votre dépôt, qui inclut tous vos commits et branches. Développez toujours à partir de ce répertoire en créant des branches distinctes pour chaque changement majeur de votre projet:

$ git branch 

Passez ensuite à cette branche:

$ git checkout 

Vous pouvez toujours vérifier pour voir quelles branches sont disponibles avec cette commande:

$ git branch

Une fois le développement terminé, validez vos modifications:

$ git add -A
$ git commit -am "some message"

Vous souhaitez maintenant fusionner vos modifications avec la branche principale:

$ git checkout master
$ git merge 

Vous pouvez APPUYER vos modifications sur GitHub ou Bitbucket si vous utilisez l'un ou l'autre service. Enfin, revenez à votre dossier de production principal et tirez les modifications:

$ git pull

Exemple:

(env)$ cd dev
(env)$ cd django15_project
(env)$ git branch 06212013
(env)$ git checkout 06212013
(env)$ git add -A
(env)$ git commit -am "description of changes made"
(env)$ git checkout master
(env)$ git merge 06212013
(env)$ cd ..
(env)$ git pull /Users/michaelherman/desktop/django15_project/dev/django15_project

Workflow

Maintenant que votre application est configurée, suivez l'un de ces flux de travail simples chaque fois que vous souhaitez apporter des modifications à votre application:

De base:

  1. Accédez à votre projet

  2. Activer virtualenv

  3. Développer

  4. Valider les modifications

  5. Déployer

  6. Désactiver virtualenv

Avancée:

  1. Accédez à votre projet

  2. Activer virtualenv

  3. Créer et extraire une nouvelle branche git

  4. Développer

  5. Valider les modifications

  6. Fusionnez la nouvelle branche avec votre branche principale

  7. Tirez les modifications dans le dossier de production

  8. Déployer

  9. Désactiver virtualenv

À votre santé! Des questions? Suggestions?

Créons unapp basique!

Django 1.6

Lancée pour la première fois le 6 novembre 2013, les nouvelles fonctionnalités les plus remarquables incluent:

  1. Python 3 Support: La prise en charge de Python 3 est désormais officielle, sans aucune restriction afin que vous puissiez l'exécuter en production.

  2. Improved Database Transaction Management: L'API est plus légère, plus propre et plus simple, ce qui facilite grandement les restaurations et la gestion des erreurs.

  3. Nouveau testeur

  4. Connexions de base de données persistantes

Vous voulez lire les notes de version complètes? Découvrez les modifications officielles de Djangohere.

La dernière version est arrivée le 18 mars 2015:v1.6.11

Installation de Django

Configurez votre structure de développement:

$ mkdir django16_project
$ cd django16_project
$ virtualenv env
$ source env/bin/activate

Vous devriez voir(env) avant votre invite,(env)$, indiquant que vous exécutez dans le virtualenv «env».

Pour quitter virtualenv, tapez la commande suivante:

$ deactivate

Réactivez ensuite lorsque vous êtes prêt à retravailler.

Avec votre virtualenv activé, installez Django avec Pip:

$ pip install django==1.6.11

Vous pouvez vérifier la version en exécutant les commandes suivantes:

>>>

$ python
>>> import django
>>> django.get_version()
'1.6.11'

Configuration du projet

Configurer le projet Django

$ django-admin.py startproject my_django16_project

Cela crée un nouveau répertoire appelé "my_django16_project" avec le répertoire et les structures de base de Django:

├── manage.py
└── my_django16_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Contrôle de version

Avant de commencer tout développement, placez votre projet sous contrôle de version. Tout d'abord, ajoutez un fichier.gitignore dans votre répertoire «django16_project», ce qui empêchera l'ajout de fichiers inutiles au référentiel git.

Ajoutez ce qui suit au fichier:

env
*.DS_Store
*.pyc
__pycache__

Maintenant, initialisez (ou créez) un nouveau dépôt Git et ajoutez vos modifications à la mise en scène, puis au dépôt.

$ git init
$ git add -A
$ git commit -am "initial"

Si vous utilisez GitHub, POUSSEZ également vos fichiers vers votre référentiel central.

Paramètres de la base de données

Tout d'abord, installez MySQL-python pour que Python puisse communiquer avec MySQL:

$ pip install MySQL-python

Modifiez votre fichiersettings.py dans votre répertoire "my_django16_project":

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Créez vos tables de base de données et configurez un superutilisateur:

$ cd my
$ python manage.py syncdb

Lancez le serveur de développement:

$ cd my_django16_project
$ python manage.py runserver

Vous devriez voir la sortie suivante si tout va bien jusqu'à présent:

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.6, using settings 'my_django16_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Accédez àhttp://127.0.0.1:8000 et vous devriez voir le familier bleu clair "Cela a fonctionné!" page.

Tuez le serveur en appuyant de nouveau sur CONTROL-C dans le terminal.

Sud

South est utilisé pour gérer les migrations de bases de données - par exemple, apporter des modifications à votre schéma de base de données.

Installez Sud:

$ pip install south

gel de pip

Une fois les dépendances installées, utilisez la commande suivante pour en créer un enregistrement, ainsi que leurs versions ultérieures, dans le répertoire «my_django16_project»:

$ pip freeze > requirements.txt

Cecommand est pratique lorsque vous devez recréer votre projet à partir de zéro. Vous pouvez simplement exécuterpip install -r requirements.txt pour installer toutes les dépendances de votre projet.

Validez vos nouvelles modifications dans Git.

Configurez votre application Django

Créez votre nouvelle application:

$ python manage.py startapp myapp

La structure de votre projet devrait maintenant ressembler à ceci:

├── manage.py
├── my_django16_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── models.py
    ├── tests.py
    └── views.py

Mettez à jour INSTALLED_APPS dans votre fichiersettings.py pour inclure South ainsi que votre nouvelle application:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

Désormais, dès que vous exécutezsyncdb, Django connaît à la foissouth etmyapp.

Ouvrezurls.py et décommentez ces trois lignes:

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

Synchronisez à nouveau votre base de données:

$ python manage.py syncdb

Créez un fichier de migration de base de données avec South:

$ python manage.py schemamigration myapp --initial

Migrez les modifications de la base de données:

$ python manage.py migrate myapp

Lancez le serveur (python manage.py runserver), puis accédez àhttp://127.0.0.1:8000/admin. Saisissez le nom d'utilisateur et le mot de passe de votre superutilisateur pour vous connecter à la page d'administration. Ceci est juste un contrôle de santé mentale pour s'assurer que tout fonctionne.

Engagez-vous à Git. Par exemple:

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin, boom"

Tout est prêt. Créons unapp basique!

Django 1.7

Lancées pour la première fois le 2 septembre 2014, les nouvelles fonctionnalités les plus notables incluent:

  1. Database Migrations: Django a maintenant un support intégré pour faire des changements de schéma de base de données, qui est basé sur South. C'est grand!

  2. Amélioration des outils de vérificationsystem pour valider et vérifier vos projets

  3. Refactorisation de la façon dont Django identifie et charge les applications

Vous voulez lire les notes de version complètes? Découvrez les modifications officielles de Djangohere.

La dernière version est arrivée le 1er mai 2015:v1.7.8

Installation de Django

Mettre en place une structure de développement:

$ mkdir django17_project
$ cd django17_project
$ virtualenv env
$ source env/bin/activate

Vous devriez voir(env) avant votre invite,(env)$, indiquant que votre virtualenv est activé.

Pour désactiver le virtualenv:

$ deactivate

Réactivez ensuite lorsque vous êtes prêt à recommencer le développement.

Avec votre virtualenv activé, installez Django avec Pip:

$ pip install django==1.7.8

Vous pouvez vérifier la version en exécutant les commandes suivantes:

>>>

$ python
>>> import django
>>> django.get_version()
'1.7.8'
>>>

Configuration du projet

Configurer le projet Django

$ django-admin.py startproject my_django17_project

Cela crée un nouveau répertoire appelé "my_django17_project" avec le répertoire et les structures de base de Django:

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Contrôle de version

Avant de commencer tout développement, placez votre projet sous contrôle de version. Tout d'abord, ajoutez un fichier.gitignore dans votre répertoire «django17_project», ce qui empêche l'ajout de fichiers inutiles au référentiel git.

Ajoutez ce qui suit au fichier:

env
*.DS_Store
*.pyc
__pycache__

Maintenant, initialisez (ou créez) un nouveau dépôt Git et ajoutez vos modifications à la mise en scène, puis au dépôt.

$ git init
$ git add -A
$ git commit -am "initial"

Si vous utilisez GitHub, POUSSEZ également vos fichiers vers votre référentiel central.

Paramètres de la base de données

Tout d'abord, installez MySQL-python pour que Python puisse parler à MySQL:

$ pip install MySQL-python

Modifiezsettings.py dans votre répertoire "my_django17_project":

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Créez vos tables de base de données et configurez un superutilisateur:

$ cd my_django17_project
$ python manage.py migrate
$ python manage.py createsuperuser

Lancez le serveur de développement:

$ python manage.py runserver

Vous devriez voir la sortie suivante si tout va bien jusqu'à présent:

Performing system checks...

System check identified no issues (0 silenced).
September 07, 2014 - 19:51:01
Django version 1.7, using settings 'my_django17_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Accédez àhttp://127.0.0.1:8000 et vous devriez voir le familier bleu clair "Cela a fonctionné!" page.

Tuez le serveur en appuyant de nouveau sur CONTROL-C dans le terminal.

gel de pip

Une fois les dépendances installées, utilisez la commande suivante pour en créer un enregistrement, ainsi que leurs versions ultérieures, dans le répertoire «my_django17_project»:

$ pip freeze > requirements.txt

Cecommand est pratique lorsque vous devez recréer votre projet à partir de zéro. Vous pouvez simplement exécuterpip install -r requirements.txt pour installer toutes les dépendances de votre projet.

Validez vos nouvelles modifications dans Git.

Configurez votre application Django

Créez votre nouvelle application:

$ python manage.py startapp myapp

La structure de votre projet devrait maintenant ressembler à ceci:

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Mettez à jour INSTALLED_APPS dans vossettings.py:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
)

Lancez le serveur (python manage.py runserver), puis accédez àhttp://127.0.0.1:8000/admin. Saisissez le nom d'utilisateur et le mot de passe de votre superutilisateur pour vous connecter à la page d'administration. Ceci est juste un contrôle de santé mentale pour s'assurer que tout fonctionne.

Engagez-vous à Git. Par exemple:

$ git add -A
$ git commit -am "updated settings, created app, boom"

Tout est prêt. Créons unapp basique!

Django 1.8

Lancées pour la première fois le 1er avril 2015, les nouvelles fonctionnalités les plus notables incluent:

  1. New PostgreSQL specific functionality: Ceci a ajouté de nouveauxPostgreSQL-specific ModelFields - les champs ArrayField, HStoreField et Range. Consultez notre article de blog,Fun With Django’s New Postgres Features, pour plus d'informations.

  2. Multiple template engines: Vous pouvez maintenant utiliser Jinja!

Vous voulez lire les notes de version complètes? Découvrez les modifications officielles de Djangohere.

La dernière version est arrivée le 1er mai 2015:v1.8.1

Installation de Django

Mettre en place une structure de développement:

$ mkdir django18_project
$ cd django18_project
$ virtualenv env
$ source env/bin/activate

Vous devriez voir(env) avant votre invite,(env)$, indiquant que votre virtualenv est activé.

Pour désactiver le virtualenv:

$ deactivate

Réactivez ensuite lorsque vous êtes prêt à recommencer le développement.

Avec votre virtualenv activé, installez Django avec Pip:

$ pip install django==1.8.1

Vous pouvez vérifier la version en exécutant les commandes suivantes:

>>>

$ python
>>> import django
>>> django.get_version()
'1.8.1'
>>>

Configuration du projet

Configurer le projet Django

$ django-admin.py startproject my_django18_project

Cela crée un nouveau répertoire appelé "my_django18_project" avec le répertoire et les structures de base de Django:

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Contrôle de version

Avant de commencer tout développement, placez votre projet sous contrôle de version. Tout d'abord, ajoutez un fichier.gitignore dans votre répertoire «django18_project», ce qui empêche l'ajout de fichiers inutiles au référentiel git.

Ajoutez ce qui suit au fichier:

env
*.DS_Store
*.pyc
__pycache__

Maintenant, initialisez (ou créez) un nouveau dépôt Git et ajoutez vos modifications à la mise en scène, puis au dépôt.

$ git init
$ git add -A
$ git commit -am "initial"

Si vous utilisez GitHub, POUSSEZ également vos fichiers vers votre référentiel central.

Paramètres de la base de données

Tout d'abord, installez MySQL-python pour que Python puisse parler à MySQL:

$ pip install MySQL-python

Modifiezsettings.py dans votre répertoire "my_django17_project":

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Créez vos tables de base de données et configurez un superutilisateur:

$ cd my_django18_project
$ python manage.py migrate
$ python manage.py createsuperuser

Lancez le serveur de développement:

$ python manage.py runserver

Vous devriez voir la sortie suivante si tout va bien jusqu'à présent:

Performing system checks...

System check identified no issues (0 silenced).
May 19, 2015 - 09:52:02
Django version 1.8, using settings 'my_django18_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Accédez àhttp://127.0.0.1:8000 et vous devriez voir le familier bleu clair "Cela a fonctionné!" page.

Tuez le serveur en appuyant de nouveau sur CONTROL-C dans le terminal.

gel de pip

Une fois les dépendances installées, utilisez la commande suivante pour en créer un enregistrement, ainsi que leurs versions ultérieures, dans le répertoire «my_django17_project»:

$ pip freeze > requirements.txt

Cecommand est pratique lorsque vous devez recréer votre projet à partir de zéro. Vous pouvez simplement exécuterpip install -r requirements.txt pour installer toutes les dépendances de votre projet.

Validez vos nouvelles modifications dans Git.

Créer une appli

Créons une application de base sur une seule page qui utilisemarkdown pour afficher du texte.

Installer

Avec virtualenv activé, installez le package suivant pour rendre le démarque.

$ pip install django-markdown-deux

Mettez à jour le fichier d'exigences pour inclure la nouvelle dépendance:

$ pip freeze > requirements.txt

Ajoutez «markdown_deux» àsettings.py:

INSTALLED_APPS = (

  ... snip ...

  'markdown_deux',
)

Créez un nouveau répertoire dans le fichier "my_django1_project” directory called “templates”, and then add the path to the settings.py *:

import os
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_ROOT = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates'),
)

La structure de votre projet devrait ressembler à…

Ceci pour Django 1.5 et 1.6:

├── manage.py
├── my_django1*_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

Ou ceci pour Django 1.7:

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

Vues et URL

Nous suivrons la structure de l'architectureModel-View-Controller (MVC). Les projets Django sont logiquement organisés autour de cette architecture. Cependant, lesarchitecture de Django sont légèrement différents en ce que les vues agissent comme les contrôleurs. Ainsi, les projets sont en fait organisés dans une architecture Model-Template-Views (MTV). Oui, c'est déroutant.

Vues

Ajoutez le code suivant au fichierviews.py:

from django.shortcuts import render_to_response
from django.template import RequestContext


def index(request):
    return render_to_response('index.html')

Cette fonction prend un paramètre,request, qui est un objet contenant des informations sur l'utilisateur qui demande la page au navigateur. La réponse de la fonction est de simplement restituer le modèleindex.html.

URLs

Ensuite, nous devons ajouter un nouveau modèle au fichierurls.py:

urlpatterns = patterns(
    '',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'myapp.views.index')
)

Pour plus d'informations sur la façon de générer des patters d'URL, veuillezview de la documentation officielle de Django.

Modèles

Enfin, nous devons créer le modèleindex.html. Créez un nouveau fichier appeléindex.html dans le répertoire des modèles et ajoutez le code trouvéhere.

Lancez le serveur. À quoi ça ressemble? Ajoutons quelques styles.

Remplacez le code précédent par le codehere.

Mieux?

Conclusion

Terminez l'ajout de styles et de contenu comme bon vous semble. Revenez ensuite à la section Workflow pour terminer le processus de développement. Si vous avez besoin d'aide, veuillez acheterReal Python. Ou faites-le de toute façon pour aider à soutenir ce projet open source. Je vous remercie. À votre santé!.

Résumé du workflow

Ce qui suit est un flux de travail de base que vous pouvez utiliser comme référence rapide pour développer un projet Django.

Installer

  1. Dans un nouveau répertoire, créez et activez un virtualenv.

  2. Installez Django.

  3. Créez votre projet:django-admin.py startproject <name>

  4. Créer une nouvelle application:python manage.py startapp <appname>

  5. Ajoutez votre application au tuple INSTALLED_APPS.

Ajouter des URL et des vues de base

  1. Mappez le fichierurls.py de votre projet à la nouvelle application.

  2. Dans le répertoire de votre application, créez un fichierurls.py pour définir les URL de votre application.

  3. Ajoutez des vues, associées aux URL, dans lesviews.py de votre application; assurez-vous qu'ils renvoient un objetHttpResponse. Selon la situation, vous devrez peut-être également interroger le modèle (base de données) pour récupérer les données requises demandées par l'utilisateur final.

Modèles et fichiers statiques

  1. Créez un répertoiretemplates etstatic dans la racine de votre projet.

  2. Mettez à joursettings.py pour inclure les chemins vers vos modèles.

  3. Ajoutez un modèle (fichier HTML) au répertoiretemplates. Dans ce fichier, vous pouvez inclure le fichier statique avec -{% load static %} et{% static "filename" %}. En outre, vous devrez peut-être transmettre les données demandées par l'utilisateur.

  4. Mettez à jour le fichierviews.py si nécessaire.

Modèles et bases de données

  1. Mettez à jour le moteur de base de données verssettings.py (si nécessaire, car il est par défaut SQLite).

  2. Créez et appliquez une nouvelle migration.

  3. Créez un super utilisateur.

  4. Ajoutez un fichieradmin.py dans chaque application à laquelle vous souhaitez accéder dans l'administrateur.

  5. Créez vos modèles pour chaque application.

  6. Créez et appliquez une nouvelle migration. (Faites ceci chaque fois que vous faites passerany à un modèle).

Formes

  1. Créez un fichierforms.py sur l'application pour définir les classes liées au formulaire; définissez ici vos classes ModelForm.

  2. Ajouter ou mettre à jour une vue pour gérer la logique du formulaire - par exemple, afficher le formulaire, enregistrer les données du formulaire, alerter l'utilisateur des erreurs de validation, etc.

  3. Ajoutez ou mettez à jour un modèle pour afficher le formulaire.

  4. Ajoutez unurlpattern dans le fichierurls.py de l'application pour la nouvelle vue.

Enregistrement de l'utilisateur

  1. Créer un formulaire utilisateur

  2. Ajoutez une vue pour créer un nouvel utilisateur.

  3. Ajoutez un modèle pour afficher le formulaire.

  4. Ajoutez un modèle d'URL pour la nouvelle vue.

Utilisateur en ligne

  1. Ajoutez une vue pour gérer les informations d'identification de l'utilisateur.

  2. Créez un modèle pour afficher un formulaire de connexion.

  3. Ajoutez un modèle d'URL pour la nouvelle vue.

Configurer la structure du modèle

  1. Trouvez les parties communes de chaque page (par exemple, en-tête, barre latérale, pied de page).

  2. Ajouter ces pièces à un modèle de base

  3. Créer spécifique. modèles inhérents au modèle de base.

Pack de ressources d'apprentissage Django

Django est un cadre de développement Web incroyable que nous utilisons tous les jours sur Real Python (realpython.com est propulsé par Django).

Django peut faire de vous un développeur Web Python hautement productif, si vous maîtrisez les bases et évitez certains des pièges courants.

C'est pourquoi nous avons créé ce «pack de ressources Django» gratuit que vous pouvez utiliser pour approfondir:

Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF) qui vous montre des trucs et astuces ainsi que les pièges courants à éviter lors de la création d'applications Web Python + Django.