Création d'une application au sein de notre projet Django

Nous allons maintenant créer une première application Django, au sein de notre projet. Cette application métier nommée django-chistera (la passe dans le dos en rugby !) sera le cœur de notre projet, et gérera l'ensemble des problématiques liées à la gestion d'un projet Scrum.

Une application dans un projet…

Vous vous souvenez de l'écosystème d'un projet Django : dans un projet Django, on aggrège (au sens de l'agrégation du paradigme objet) différentes applications. ceci encourage la programmation modulaire et la réutilisation des modules.

Nous allons donc concevoir notre application django-chistera comme une application de gestion de projets Scrum, qui pourra fonctionner aussi bien dans notre projet que dans d'autres projets (de nous ou d'autres personnes) !

Création de l'application

Créer une application Django est simple comme bonjour. Voici la manière de procéder.

Placez vous dans le répertoire du projet, et tapez la commande suivante (qui ressemble fort à celle que nous avons utilisé pour créer notre projet) :

$ django-admin.py startapp chistera

Notre nouvelle application est créée. Un répertoire chistera a été créé dans le répertoire de notre projet, et il contient quelques fichiers utiles au fonctionnement de notre application. Voyons quel est son contenu :

miage_scrum
|--- manage.py
|--- miage_scrum/
|--- chistera
|    |--- __init__.py
|    |--- models.py
|    |--- views.py
|    |--- tests.py
  • Le fichier models.py est destiné, comme son nom l'indique, à accueillir les modèles de notre application (cf. MVC).
  • Le fichier views.py est destiné, comme son nom ne l'indique pas, à accueillir les contrôleurs de notre application (cf. MVC).
  • Le fichier tests.py accueillera quant à lui les tests (notamment unitaires et d'intégration) de notre appli (cf. Tests et qualité).

Pour une meilleure réutilisabilité…

Remarquez que nous avons ici opté pour une solution de facilité qui consiste à stocker l'application dans le répertoire du projet.

Cette solution est effectivement la plus simple, mais elle n'est en réalité pas un modèle de réutilisabilité : comment utiliser l'application dans un autre projet ? Ce sera possible mais ppas pratique. C'est la raison pour laquelle on crée généralement les applications dans des répertoires séparés.

La commande django-admin.py startapp fonctionne n'importe-où.

Test de connaisances

Où peut-on créer-t-on une application Django ?
  • À l'intérieur d'un projet
  • Dans un endroit calme est isolé phoniquement
  • Dans n'importe quel répertoire
  • Dans une autre application
Quel est l'intérêt de créer ses applications à l'extérieur de ses projets ?
  • Cela permet de réutiliser plus simplement la même application dans plusieurs projets.
  • C'est obligatoire car Django ne permet pas de créer une application à l'intérieur d'un projet.
  • Cela est plus cohérent du fait qu'un projet aggrège des applications.
  • C'est impossible car un projet est composé (relation de composition forte au sens d'UML) d'applications.