01 Premier projet Django
Ce TP est votre premier pas dans l'univers de Django. Grâce à ce premier projet Django va vous permettre de comprendre la structure et comment bien débuter avec le framework.
Un projet Django ?
Un projet Django est l'entité de base qui représente une instance du framework et regroupe un ensemble de configurations et d'applications.
Attention ! Ne confondez pas projet et application. Le projet est une coquille quasi vide qui permet d'utiliser des applications (créez par vous-même ou par d'autres). Les applications Django peuvent être utilisées dans différents projets. On ne peut pas utiliser une application sans projet.
Par exemple une application forum peut être utilisé dans différents projets.
Installation et création du projet
L'installation de Django se fait généralement très rapidement, et ne présente pas grande difficulté. Assurez-vous néanmoins de suivre les étapes suivantes.
Avez-vous installé Python ?
Assurez vous d'avoir installé Python et que ce dernier fonctionne correctement.
Installation de Django avec pip
La méthode conseillée pour installer Django consiste à utliser l'outil pip dont la vocation est d'installer des packages Python.
- Commencez donc par installer pip
- Dans un terminal tapez:
pip install django
Vérification de l'installation de Django
Pour vérifier que votre installation a bien fonctionné, ouvrez un terminal, lancez Python et essayez d'importer le module django :
import django
django.VERSION
Présentation du projet
Notre premier projet Django consistera en la conception et le développement d'un site web de review de jeu vidéo. Cette page est en quelque sorte notre cahier des charges "simplifié".
Bien entendu comme il s'agit d'un projet pédagogique et que nous allons le réaliser en quelques heures.
Création du projet GamesPlus
Django est livré avec une CLI utilitaire bien pratique qui vous permettra de créer automatiquement l'arborescence de votre projet. Cette commande (qui est en réalité un script Python) se nomme django-admin et s'utilise de la sorte: django-admin startproject my_project
. Nous allons donc taper la commande suivante:
$ django-admin startproject games_plus
C'est fait, notre projet est créé ! En d'autres termes, un répertoire games_plus a été créé et il contient quelques fichiers utiles au fonctionnement de notre projet. Voyons quel est son contenu:
games_plus
|--- manage.py
|--- games_plus
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
- manage.py: outil qui permet d'exécuter des commandes utiles au sein du projet. Son utilisation sera détaillé par la suite
- games_plus: sous-répertoire qui contient les fichiers propres à notre projet:
- settings.py: configuration globale du projet
- urls.py: contrôleur frontal du projet, c'est le chef de gare qui éguillera toutes les requêtes vers les bons contrôleurs
- wsgi.py: fichier de configuration relatif au serveur qui exécutera notre projet suivant l'interface WSGI (Web Server Gateway Interface)
Notre répertoire games_plus/games_plus contient un fichier
__init__.py
. Ce fichier est vide et permet d'indiquer à Python qu'un répertoire contenant des fichiers.py
est un module Python.
Vérification de notre projet via le serveur de développement
Maintenant que notre projet est créé, nous allons lancer le serveur de développement de Django afin de nous assuré que tout fonctionne correctement.
Placez vous dans le répertoire du projet puis tapez la commande suivante:
$ python manage.py runserver
Django devrait afficher quelque chose équivalent à cela:
Performing system checks...
System check identified no issues (0 silenced).
February 27, 2017 - 09:43:39
Django version 1.10.3, using settings 'games_plus.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Parfait notre serveur est lancé, nous pouvons maintenant visiter l'URL: 127.0.0.1:8000 pour voir ce qui s'y passe !
Vous devriez donc voir ceci:
Conclusion
Mission accomplie, nous avons créé notre premier projet Django, et il est à présent opérationnel : le serveur se lance sans erreur, et il répond aux requêtes.
Certes, son utilité reste limitée en l'état ..
Nous allons donc maintenant voir comment y ajouter quelques éléments intéressants : - créer des modèles, - paramétrer notre contrôleur frontal - et faire un peu de scaffolding pour remplir notre base de données !