【Django】我个人喜欢的目录结构和配置方法是… (Wǒ gèrén xǐhuān de mùlù jiégòu hé pèizhì fāngfǎ shì…)
首先
我认为有很多人希望修改Django的目录结构
我个人希望如下,因此我想分享修改方法:
– 希望按照功能(app)将JavaScript和css的静态文件整合在一起
– 希望将功能(app)整合到apps目录下
→ 默认情况下,它们位于根目录下,导致有些凌乱…
– 希望将配置文件(setting.py等)的目录名称改为config
→ 默认情况下,它们是站点名称!
我們預計的環境如下所述。
- django 3.2.10
目次
-
- 目指すディレクトリ構成
-
- setting.py の変更
-
- manage.py の変更
-
- asgi.py の変更
-
- wsgi.py の変更
-
- 参考サイト
- GitHub
瞄准的目录结构
应用程序集中在apps目录下,看起来整洁!
静态文件按应用程序分类整理!
配置文件的目录名改为config!
src
│ manage.py
├─apps
│ └─sample
│ │ __init__.py
│ │ apps.py
│ │ urls.py
│ │ views.py
│ ├─static
│ │ └─sample
│ │ ├─css
│ │ │ sample.css
│ │ └─js
│ │ sample.js
│ └─templates
│ └─sample
│ sample.html
└─config
__init__.py
asgi.py
settings.py
urls.py
wsgi.py
更改 setting.py 文件.
我会逐渐对以下部分进行更改。
※仅提取必要的部分。
# インポートを追記
+ import os
+ import sys
# ※下記より「BASE_DIR = Path(__file__).resolve().parent.parent」の記述以降に追記してください
# app を apps 配下にまとめておけるように下記を追記
+ sys.path.insert(0, os.path.join(BASE_DIR, "apps"))
# wsgi の配置を config ディレクトリ配下にするため下記を変更
- WSGI_APPLICATION = 'mysite.wsgi.application'
+ WSGI_APPLICATION = 'config.wsgi.application'
# ルートの urls を config ディレクトリ配下にするため下記を追記
+ ROOT_URLCONF = 'config.urls' #
# static を app ごとにまとめられるように下記を追記
# 本番環境では static を一纏めにするので切替られるように分岐する
+ if DEBUG == False:
+ STATIC_ROOT = os.path.join(BASE_DIR, 'static')
管理.py文件的更改
我将对以下部分进行更改。
※仅提取所需的地方。
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
asgi.py的修改 .py de
我将对下述内容进行修改。
* 仅提取必要的部分。
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
更改 wsgi.py 文件
我们将对以下部分进行修改。
※只摘录必要的部分。
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
参考网站
・【Django】探索最佳项目配置实践 – 1. 更改设置目录名称
・Django项目结构的定制化(拆分与结构化)
・简介Django(settings.py)
・【开发效率提升】在应用开发中推荐的目录
GitHub – 代码托管网站
我会把一个可用作模板的东西放在这里
https://github.com/tsk1000/django_seed-docker
最后的结论是
我在类似于小-中规模的项目中有使用经验。
说实话,如果是这种规模,无论采取什么形式,我都能理解,所以可能没有必要太过纠结…
这种感觉像是把IDE或者工具的面板位置改变到熟悉的地方一样!