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文件夹
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怎么设置多环境配置文件载入”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!
推荐阅读
-
浅析Django接口版本控制
-
Django+Celery实现定时任务的示例
-
Python(django中如何使用restful框架)
-
Django实现drf搜索过滤和排序过滤
-
Django中怎么将ValuesQuerySet转换成json
今天就跟大家聊聊有关Django中怎么将ValuesQuerySet转换成json,可能很多人都不太了解,为了让大家更加了解,小编...
-
Django分页器的使用方法
这篇文章主要介绍了Django分页器的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面...
-
Python Django搭建文件下载服务器的实现shili
-
在Django中如何使用MQTT的方法
这篇文章主要介绍了在Django中如何使用MQTT的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有...
-
Django开发RESTful API怎么实现增删改查
-
Django如何显示可视化图表的实践