Création du projet MiageScrum

Vous apprendrez sur cette page à créer un projet Django, pas à pas. Ce projet nous servira de fil conducteur durant tout notre apprentissage du framework. Notre projet : un système simple de gestion de projet Scrum : backlog, équipe, sprints….

Dans 5 secondes, notre projet MiageScrum sera créé !

C'est parti : créons notre projet.

Django vient avec une commande utilitaire bien pratique qui vous permettra de créer automatiquement l'arborescence de votre projet. Cette commande (qui est en fait un script Python) s'appelle django-admin, et s'utilise de la sorte : django-admin.py startproject mon_projet. Nous allons donc taper la commande suivante :

$ django-admin.py startproject miage_scrum

C'est fait, notre projet est créé ! En d'autre termes, un répertoire miage_scrum a été créé, et il contient quelques fichiers utiles au fonctionnement de notre projet. Voyons quel est son contenu :

miage_scrum
|--- manage.py
|--- miage_scrum
|    |--- __init__.py
|    |--- settings.py
|    |--- urls.py
|    |--- wsgi.py
  • Le script manage.py est un outil qui nous permettra d'exécuter des commandes utiles au sein de notre projet. Nous verrons très bientôt comment l'utiliser, par exemple pour créer les tables de notre base de données ou lancer le serveur de développement.
  • Le sous-répertoire miage_scrum contient les fichiers propres à notre projet :
    • settings.py contient la configuration globale du projet, par exemple les identifiants de connexion BDD, les chemins des différentes ressources, etc.
    • urls.py est le contrôleur frontal de notre projet : c'est le chef de gare qui éguillera toutes les requêtes vers les bons contrôleurs.
    • wsgi.py est un fichier de configuration relatif au serveur qui exécutera notre projet, suivant l'interface WSGI (Web Server Gateway Interface). Nous n'avons pas à nous en occuper.

Vous avez remarqué que notre répertoire miage_scrum/miage_scrum contient aussi un fichier __init__.py. Ce fichier est vide et vous pouvez vous demander à quoi il sert. Souvenenez vous de ceci : quand on crée un module Python (un répertoire contenant des scripts), il n'est considéré comme module que s'il contient un fichier __init__.py. C'est tout. Il est ainsi possible, dans un programme d'importer des éléments du modules avec l'instruction import.

Vérifions que notre projet « fonctionne » : le serveur de développement

Maintenant que notre projet est créé, nous allons lancer le serveur de développement de Django pour voir si tout fonctionne correctement.

Placez-vous dans le répertoire du projet, puis tapez la commande suivante :

$ python manage.py runserver

Django devrait afficher ceci :

Validating models...

0 errors found
December 17, 2013 - 04:54:52
Django version 1.5.5, using settings 'miage_scrum.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Parfait, notre serveur est en route, et nous pouvons maintenant visiter l'URL http://127.0.0.1:8000/ pour voir ce qui s'y passe !

Dans un navigateur web, à l'adresse http://127.0.0.1:8000/, vous devriez donc voir ceci :

Lancement du serveur de développement de Django

Le serveur tourne, le projet est en place !

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 peupler notre base de données !

Testez vos connaissances sur cette partie

Comment crée-t-on un projet Django ?
  • $ django-admin.py startproject nom_de_mon_application
  • $ python manage.py runserver
  • $ django-admin.py startproject nom_de_mon_projet
Qu'est-ce que django-admin.py ?
  • C'est un script Pyhton.
  • C'est un outil fourni par Django.
  • C'est script Unix.
  • C'est un programme compilé dont on dispose une version pour Windows, Linux et Mac OS.
  • C'est un outil qui permet de créer des projets Django.
À quoi sert la commande python manage.py runserver ?
  • Elle permet de tester de manière unitaire une application Django.
  • Elle permet de lancer le serveur de développement de Django pour un projet donné.
  • Elle permet de lancer le serveur de développement de Django pour une application donnée.
  • Cette commande n'existe pas en Django.
  • C'est une commande qui permet de faire courir un serveur.
À quoi correspond le 8451 dans l'URL http://127.0.0.1:8451/ ?
  • Le serveur a été lancé 8451 fois.
  • Le serveur écoute les requêtes sur le port 8451.
  • Cette URL est erronée et ne fonctionnera pas.
  • Il s'agit de l'URL par défaut du serveur de développement de Django.

L'URL par défaut du serveur de développement de Django est http://127.0.0.1:8000/. Vous pouvez néanmoins la modifier, notamment si vous souhaitez lancer deux serveurs de dev en même temps sur la même machine. La syntaxe est la suivante : $ python manage.py runserver 8451 (lancera le serveur de dev sur le port 8451 !).