Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Structure d’un projet et des applications

Structure

Cela a déjà été abordé au chapitre Pour débuter mais voici un exemple plus complet et plus général d’arborescence d’un projet Django. Cette arborescence n’est pas complètement figée, à l’exception des applications, pour lesquelles il est recommandé de conserver cette organisation.

1. Projet

Comme nous l’avons vu au chapitre Présentation du framework Django à la section Pourquoi adopter Django ?, la structure de base d’un projet Django est la suivante :


./projet            # Nom du projet 
   /__init__.py     # (module python) 
   /manage.py       # La commande Django de gestion du projet 
   /projet                 # Le répertoire du projet 
         /settings.py # La configuration du projet 
         /urls.py     # La configuration des URL du projet 
         /wsgi.py     # Le script WSGI pour le déploiement 
         /code_projet.py # Du code spécifique au projet 
         /static      # Les fichiers statiques du projet 
         /templates   # Les templates du projet 
         /module/  ...

Le fichier settings.py

Sur la base des propositions de configuration présentées au-dessus, voici un exemple de fichier de configuration compatible. Cette organisation est une proposition et cela reste parfaitement adaptable à votre façon de faire, à l’exception de ce que Django s’attend à trouver à un endroit précis dans les applications. Il s’agit de présenter un principe d’organisation pour pouvoir s’y retrouver et garder les applications réutilisables.


 import os 
  
 PROJECT_DIR = os.path.abspath(os.path.dirname(__file__) 
 SITE_ROOT = os.path.abspath(os.path.join(PROJECT_DIR, os.pardir)) 
  
 DEBUG = True    # Développement 
 # DEBUG=False   # PRODUCTION 
 TEMPLATE_DEBUG = DEBUG 
  
 ADMINS = ( 
     ('Your Name', 'your_email@example.com'), 
 ) 
  
 MANAGERS = ADMINS 
  
 DATABASES = { 
     'default': { 
         'ENGINE': 'django.db.backends.sqlite3', 
         'NAME': os.path.join(SITE_ROOT,'db.sqlite3'),  
         'USER': '', 
         'PASSWORD': '', 
         'HOST': '',       
         'PORT': '',        
       } 
 } 
  
 # Hosts ou domaines utilisables par le site si DEBUG == False 
 # Voir https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts 
 ALLOWED_HOSTS = [] 
 # ALLOWED_HOSTS = ['www.mon-domaine.fr']  # PRODUCTION 
  
 # Timezone de l'installation.  
 # voir http://en.wikipedia.org/wiki/List_of_tz_zones_by_name  
 # Pour Windows il faut mettre la valeur de la time zone système.  
 TIME_ZONE = 'Europe/Paris'  
  
 # Code langue par défaut du site  
 # voir http://www.i18nguy.com/unicode/language-identifiers.html  
 LANGUAGE_CODE = 'fr-fr'  
  
 SITE_ID = 1  
  
 # Localisation des messages et activation de la traduction  
 USE_I18N = True  
  
 # Localisation des formats numériques, dates et heures  
 USE_L10N...