【发布时间】:2020-02-10 09:03:54
【问题描述】:
我有一个 django 项目,其中包含 3 个完全不同的模板,每个模板都有自己的文件夹。 是否可以制作一个在执行时更改 django 设置(静态文件和模板的文件路径)的 python 脚本?
谁能指点我一个教程或给我建议,告诉我如何自己实现这一目标?
谢谢!
【问题讨论】:
我有一个 django 项目,其中包含 3 个完全不同的模板,每个模板都有自己的文件夹。 是否可以制作一个在执行时更改 django 设置(静态文件和模板的文件路径)的 python 脚本?
谁能指点我一个教程或给我建议,告诉我如何自己实现这一目标?
谢谢!
【问题讨论】:
代替:
settings.py
你可以有这样的结构:
settings/
base.py
development.py
staging.py
production.py
base.py 包含所有常用设置。
development.py 从base.py 导入所有设置并覆盖development server 的必要设置,如下所示:
from your_app.settings.base import *
A_SETTING_TO_CHANGE = DIFFERENT_VALUE_FOR_DEVELOPMENT
staging.py 从base.py 导入所有设置并覆盖staging server 的必要设置,如下所示:
from your_app.settings.base import *
A_SETTING_TO_CHANGE = DIFFERENT_VALUE_FOR_STAGING
production.py 从base.py 导入所有设置并覆盖production server 的必要设置,如下所示:
from your_app.settings.base import *
A_SETTING_TO_CHANGE = DIFFERENT_VALUE_FOR_PRODUCTION
然后在wsgi.py和manage.py更改:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_app.settings')
收件人:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_app.settings.development')
在staging server中,将DJANGO_SETTINGS_MODULE环境变量设置为'your_app.settings.staging'。
在production server中,将DJANGO_SETTINGS_MODULE环境变量设置为'your_app.settings.production'。
【讨论】: