Лучшие практики для структуры рабочего каталога Django

Лучшие практики для структуры рабочего каталога Django

Django - это фантастическая среда веб-разработки с открытым исходным кодом на основе Python, которую можно использовать для создания полнофункциональных веб-приложений. Поскольку это фреймворк, изначально можно ожидать, что внутри проектов будет много файлов. Поначалу это может показаться слишком сложным для новичка, но в этом нет ничего страшного; со временем все будет выглядеть просто.

У веб-приложения есть две стороны: разработка и производство. Сторона разработки имеет другие настройки по сравнению с производственной стороной. В приложениях Django есть много папок, таких как static, media, templates и т. Д. Поскольку Django существует уже некоторое время, вам необходимо знать лучшие практики для структуры рабочих каталогов Django для более успешных проектов в этой области. область. Мы поговорим об этих методах здесь, в статье, так что читайте дальше!

Структура каталогов Django

Структура каталогов проекта Django должна выглядеть примерно так:

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

Корневая папка Django

Корневая папка Project Folder содержит проекты Django и все другие файлы, связанные с проектом, такие как license, README, environment, requirements.txt, .gitignore и Documentation or Docs.

Папка проекта Django

Внутри проекта Django, MyProject, должны быть файл manage.py, папка media, папка MyProject, содержащая файл settings.py, и приложения Django.

Папка настроек проекта Django

По умолчанию Django предоставляет нам один файл settings.py и некоторые другие важные файлы, такие как urls.py, wsgi.py и т. Д. Файл settings.py содержит настройки как для производства, так и для разработка. Следовательно, его длина может увеличиваться для более значительного проекта.

Поэтому разделение настроек на соответствующие файлы - отличная идея. Файл base.py содержит настройки, применимые как к разработке, так и к производству. Файл development.py содержит все применимые настройки для разработки, а production.py - все производственные настройки.

На стороне разработки и производства могут быть разные настройки базы данных, настройки проверки пароля, настройки электронной почты, настройки оплаты, ключи API и другие конфигурации.

Если вы используете Python Decouple для хранения конфиденциальных данных, файл .env также должен находиться в этой папке.

Приложения Django

Каждое приложение Django будет иметь static папку и папку templates. Внутри этих папок будет еще одна папка по имени приложения. Внутри этих папок мы разместим все статические файлы и шаблоны.

Такой подход позволяет нам иметь несколько файлов с одним и тем же именем. Например, у каждого приложения могут быть файлы index.html и style.css, и станет легче получить к ним доступ.

----------
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.

LinkedIn GitHub