Django怎么设置多环境配置文件载入

这篇文章主要介绍了Django怎么设置多环境配置文件载入,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

起步

通常,针对不同的开发环境,需要不同的配置保证程序可运行且不干扰。单个 settings.py 文件就很难满足需求,需要将他拆分为多个文件,根据特定环境载入不同的配置文件。一种简单的划分就是分为 4 个文件:

__init__.py
base.py
dev.py
prod.py

基本结构

一个初始的 Django 项目目录结构如下:

mysite/
|--mysite/
||--__init__.py
||--settings.py
||--urls.py
|+--wsgi.py
+--manage.py

这时候要做的就是创建一个名为 settings 的文件夹,将 settings.py 重命名为 base.py 并放入文件夹内:

mysite/
|--mysite/
||--__init__.py
||--settings/<--新建的文件夹
|||--__init__.py<--
|||--base.py<--旧的settings.py
|||--cli.py<--根据不同环境而新增的配置文件
|||--dev.py
||+--prod.py
||--urls.py
|+--wsgi.py
+--manage.py

base.py 顾名思义,它将成为所有环境的通用配置,扩展的配置文件需要将 base.py 导入:

#settings/dev.py
from.baseimport*

DEBUG=True

INSTALLED_APPS+=[
'debug_toolbar',
]
...

让配置文件生效

要使配置文件生效,需要让 Django 知道我们要使用哪个配置文件,一种方式就是在命令行中传递这个 --settings=mysite.settings.dev 参数,如:

pythonmanage.pyrunserver--settings=mysite.settings.dev
pythonmanage.pyrunserver--settings=mysite.settings.prod
pythonmanage.pymigrate--settings=mysite.settings.prod

如果不希望每次指令都传递 --settings 参数,也可以通过修改 manage.py 文件实现使用不同的配置文件:

#manage.py
importos
importsys
if__name__=="__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings.dev")#修改这个位置
...

在服务器上指定设置

生产环境下一般不会使用 runserver 指令运行,大多是通过 uwsgi 方式运行,修改 mysite/wsgi.py :

importos
fromdjango.core.wsgiimportget_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings.prod")
application=get_wsgi_application()

通过修改 DJANGO_SETTINGS_MODULE 环境变量指向所需的配置文件。

下面看下django settings多环境配置

通常我们会把本地、线上的配置拆分,django不同环境的配置可如下:

1.在settings.py同级目录添加settings文件夹

2.把settings.py移到settings文件夹内,并重命名为base.py

3.添加dev.py, prod.py到settings文件夹

Django怎么设置多环境配置文件载入

4.base.py中的根目录,要改成:

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__,os.pardir))))

说明:

1)一些公共配置,放在base.py中。其他因环境而不同的配置,加到local.py/prod.py中

2)dev.py/prod.py,需要把base.py中的配置导入

from.baseimport*
DEBUG=True
#其他配置

3)启动服务时,用--setings指定配置

pythonmanage.pyrunserver--settings=back-server.settings.dev

正式环境用uwsgi部署,则配置环境变量:DJANGO_SETTINGS_MODULE=back-server.settings.prod

感谢你能够认真阅读完这篇文章,希望小编分享的“Django怎么设置多环境配置文件载入”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2021-05-10 20:36:18
收藏
分享
海报
0 条评论
162
上一篇:bootstrap-select中多选和模糊查询下拉框的示例分析 下一篇:python画图的常规设置方式有哪些
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码