简单的 Django 项目结构
Simple Django Project Structure
我已经为我的 django 项目构建了虚拟环境和根目录,这将是一个简单的活动场所网站。该网站的导航栏上将只有几个不同的选项卡,向用户显示一些场馆的具体信息,包括定价、照片库和场馆的历史。
我的问题是网上有太多关于“项目结构的最佳实践”的相互矛盾的信息。
我应该为主页和后面的每个页面创建一个应用程序,还是只创建一个包含大部分项目的核心应用程序?如果是这样的话,这个项目是不是一个很好的例子? --> https://github.com/justdjango/django-ecommerce
有人知道我可以参考的简单项目吗?
同样,这是一个非常简单的项目,只有几个 url,没有表单。
非常感谢任何花时间阅读本文并帮助我的人。
没有确切的答案:您可以根据需要组织它,Django 不会强迫您将东西 放在固定位置。支持我观点的论据:
- Django 的模板设置:
TEMPATES['DIRS']
。放入名为 'templates' 的文件夹后,它将搜索名为 templates 的文件夹所在的整个项目。你可以把它放在第一层(manage.py 旁边),或者应用程序中的五层,这都没有关系。
- Django 的
STATICFILES_DIRS
设置。如果 Django 希望您将静态文件放在一个目录中,它可以将参数限制为一个字符串,但它默认为一个列表,您可以随意填充。
对我来说,我喜欢 Packt 出版的一本书组织文件的方式:static
、site_static
和 templates
都在基本级别。
您的应用程序现在很小,但是一旦它变大,遍历每个应用程序来访问模板会很烦人。如果您将所有内容放在一起,您可以轻松访问所有内容。
所以它是这样的:
|- project
|- app1
|- app2
|- site_static // your custom static files
|- css
|- js
|- static // bootstrap, webpack stuffs, etc.
|- media // user uploads and images used in site
|- templates
|- manage.py
|- requirements.txt
尽管将 static
和 media
放在视线之外。没必要穿github,而且会privacy/copyright担心图片。
根据我使用 Django 的经验,没有明确的答案,这完全取决于您和您的习惯,希望这对您有所帮助。
Templates/static 个文件
我将这些模板和静态文件放在全局 templates/static 目录中,而不是在每个应用程序中,如果你是一个人或在一个小团队中工作的全栈开发人员,你可以创建每个应用程序 templates/static 目录。这真的只是一个品味问题。
[projectname]/
├── [projectname]/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
|
|── [App1]
|── [static]/
| ├── [css]
| ├── [Javascript]
| └── [Images]
|
|── [templates]
|── manage.py
└── requirements.txt
在我看来,您只需要一个应用程序,我们称它为 web
,因为它仅用于网站。在创建存储库和数据库并使其成为 运行 之后,我在创建一个简单项目时遵循的步骤是:
- 创建静态、媒体和模板文件夹
python manage.py startapp web
- 在 settings.py 文件
INSTALLED_APPS
中添加网站
- 将 html 文件放入模板文件夹,将其他文件夹(js、css、图像、字体..)放入
static
文件夹
- 将 URL 设置为 project_name 中的新应用 > urls.py
- 在
web.views
中为索引页创建视图
- 创建url到刚刚在
web.urls
中创建的视图
- 将index.html中的图片、js和css文件的每个链接更改为
static
url以便在python中使用。 {% load static %}
是必须的
- 页面现在将加载到本地主机。
- 创建其他
views
并在网络应用程序中将 urls
设置为其他页面,例如关于、联系等
- 创建您需要的模型列表并在
web.models
中定义它们
- 使用
web.admin
将它们传递到管理页面
- 通过将数据从模型传递到模板使其动态化。
希望你做对了
我已经为我的 django 项目构建了虚拟环境和根目录,这将是一个简单的活动场所网站。该网站的导航栏上将只有几个不同的选项卡,向用户显示一些场馆的具体信息,包括定价、照片库和场馆的历史。
我的问题是网上有太多关于“项目结构的最佳实践”的相互矛盾的信息。
我应该为主页和后面的每个页面创建一个应用程序,还是只创建一个包含大部分项目的核心应用程序?如果是这样的话,这个项目是不是一个很好的例子? --> https://github.com/justdjango/django-ecommerce
有人知道我可以参考的简单项目吗?
同样,这是一个非常简单的项目,只有几个 url,没有表单。
非常感谢任何花时间阅读本文并帮助我的人。
没有确切的答案:您可以根据需要组织它,Django 不会强迫您将东西 放在固定位置。支持我观点的论据:
- Django 的模板设置:
TEMPATES['DIRS']
。放入名为 'templates' 的文件夹后,它将搜索名为 templates 的文件夹所在的整个项目。你可以把它放在第一层(manage.py 旁边),或者应用程序中的五层,这都没有关系。 - Django 的
STATICFILES_DIRS
设置。如果 Django 希望您将静态文件放在一个目录中,它可以将参数限制为一个字符串,但它默认为一个列表,您可以随意填充。
对我来说,我喜欢 Packt 出版的一本书组织文件的方式:static
、site_static
和 templates
都在基本级别。
您的应用程序现在很小,但是一旦它变大,遍历每个应用程序来访问模板会很烦人。如果您将所有内容放在一起,您可以轻松访问所有内容。
所以它是这样的:
|- project
|- app1
|- app2
|- site_static // your custom static files
|- css
|- js
|- static // bootstrap, webpack stuffs, etc.
|- media // user uploads and images used in site
|- templates
|- manage.py
|- requirements.txt
尽管将 static
和 media
放在视线之外。没必要穿github,而且会privacy/copyright担心图片。
根据我使用 Django 的经验,没有明确的答案,这完全取决于您和您的习惯,希望这对您有所帮助。
Templates/static 个文件
我将这些模板和静态文件放在全局 templates/static 目录中,而不是在每个应用程序中,如果你是一个人或在一个小团队中工作的全栈开发人员,你可以创建每个应用程序 templates/static 目录。这真的只是一个品味问题。
[projectname]/
├── [projectname]/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
|
|── [App1]
|── [static]/
| ├── [css]
| ├── [Javascript]
| └── [Images]
|
|── [templates]
|── manage.py
└── requirements.txt
在我看来,您只需要一个应用程序,我们称它为 web
,因为它仅用于网站。在创建存储库和数据库并使其成为 运行 之后,我在创建一个简单项目时遵循的步骤是:
- 创建静态、媒体和模板文件夹
python manage.py startapp web
- 在 settings.py 文件
INSTALLED_APPS
中添加网站 - 将 html 文件放入模板文件夹,将其他文件夹(js、css、图像、字体..)放入
static
文件夹 - 将 URL 设置为 project_name 中的新应用 > urls.py
- 在
web.views
中为索引页创建视图
- 创建url到刚刚在
web.urls
中创建的视图
- 将index.html中的图片、js和css文件的每个链接更改为
static
url以便在python中使用。{% load static %}
是必须的 - 页面现在将加载到本地主机。
- 创建其他
views
并在网络应用程序中将urls
设置为其他页面,例如关于、联系等 - 创建您需要的模型列表并在
web.models
中定义它们
- 使用
web.admin
将它们传递到管理页面
- 通过将数据从模型传递到模板使其动态化。
希望你做对了