Django 工作目录结构的最佳实践

Vaibhav Vaibhav 2021年6月29日
Django 工作目录结构的最佳实践

Django 是一个出色的基于 Python 的开源 Web 开发框架,你可以使用它来创建全栈 Web 应用程序。由于它是一个框架,因此最初可以预期项目中有许多文件。对于初学者来说,一开始可能会让人不知所措,但没有什么可担心的;随着时间的推移,一切都会变得简单。

Web 应用程序有两个方面:开发和生产。与生产端相比,开发端有不同的设置。Django 应用程序有许多文件夹,例如 staticmediatemplates 等。由于 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 项目和与该项目相关的所有其他文件,例如 licenseREADMEenvironmentrequirements.txt.gitignoreDocumentation or Docs

Django 项目文件夹

在 Django 项目 MyProject 中,应该有 manage.py 文件、media 文件夹、包含 settings.py 文件的 MyProject 文件夹和 Django 应用程序。

Django 项目设置文件夹

默认情况下,Django 为我们提供了一个 settings.py 文件和一些其他重要文件,例如 urls.pywsgi.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
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.