Meilleures pratiques pour une structure de répertoire de travail Django

Vaibhav Vaibhav 29 juin 2021
Meilleures pratiques pour une structure de répertoire de travail Django

Django est un fantastique framework de développement Web open source basé sur Python que vous pouvez utiliser pour créer des applications Web à pile complète. Puisqu’il s’agit d’un framework, on peut initialement s’attendre à de nombreux fichiers à l’intérieur des projets. Cela peut être trop écrasant pour un débutant au début, mais il n’y a pas de quoi s’inquiéter ; tout semblera simple avec le temps.

Une application web a deux faces : le développement et la production. Le côté développement a des paramètres différents par rapport au côté production. Les applications Django ont de nombreux dossiers tels que static, media, templates, etc. Puisque Django existe depuis un certain temps, vous devez connaître les meilleures pratiques pour une structure de répertoires de travail Django pour des projets plus réussis dans ce domaine. surface. Nous parlerons de ces méthodes ici dans l’article, alors lisez la suite !

Structure du répertoire Django

La structure de répertoires d’un projet Django devrait ressembler à ceci :

Project Folder/
    .gitignore    
    LICENSE.rst or LICENSE.md
    Documentation/
    README.rst or README.md
    environment
    requirements.txt
    MyProject/
        manage.py
        media/
        MyProject/
            __init__.py
            settings/
                __init__.py
                base.py
                development.py
                production.py
                .env
            urls.py
            wsgi.py
        AppOne/
            static/
                AppOne/
            templates/
                AppOne/
            urls.py
            views.py
            models.py
        AppTwo/
            static/
                AppTwo/
            templates/
                AppTwo/
            urls.py
            views.py
            models.py
        AppThree/
            static/
                AppThree/
            templates/
                AppThree/
            urls.py
            views.py
            models.py

Dossier racine Django

Le dossier racine, Project Folder, contient les projets Django et tous les autres fichiers liés au projet, tels que la licence, README, environment, requirements.txt, .gitignore et Documentation or Docs.

Dossier de projet Django

A l’intérieur du projet Django, MyProject, il devrait y avoir le fichier manage.py, le dossier media, le dossier MyProject qui contient le fichier settings.py et les applications Django.

Dossier des paramètres du projet Django

Par défaut, Django nous fournit un seul fichier settings.py et quelques autres fichiers importants tels que urls.py, wsgi.py, etc. Le fichier settings.py contient des paramètres à la fois pour la production et développement. Par conséquent, il peut s’allonger pour un projet plus important.

Par conséquent, diviser les paramètres dans leurs fichiers respectifs est une excellente idée. Le fichier base.py contient les paramètres qui s’appliquent à la fois au développement et à la production. Le fichier development.py contient tous les paramètres applicables au développement, et le fichier production.py contient tous les paramètres de production.

Les côtés développement et production peuvent avoir différents paramètres de base de données, paramètres de validation de mot de passe, paramètres de messagerie, paramètres de paiement, clés API et autres configurations.

Si vous utilisez Python Decouple pour stocker des données sensibles, le fichier .env doit également se trouver dans ce dossier.

Applications Django

Chaque application Django aura un dossier static et un dossier templates. À l’intérieur de ces dossiers, il y aura un autre dossier portant le nom de l’application. Dans ces dossiers, nous placerons tous les fichiers et modèles statiques.

Cette approche nous permet d’avoir plusieurs fichiers avec le même nom. Par exemple, chaque application peut avoir un fichier index.html et un style.css, et il deviendra plus facile d’y accéder.

----------
HTML Files
----------
{% url 'AppOne/index.html' %}
{% url 'AppTwo/index.html' %}
{% url 'AppThree/index.html' %}

---------
CSS Files
---------
{% static 'AppOne/style.css' %}
{% static 'AppTwo/style.css' %}
{% static 'AppThree/style.css' %}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.