在上篇文章给大家介绍过Django 多环境配置详解,感兴趣的朋友可以点击查阅,今天继续给大家介绍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 .base import * DEBUG = True INSTALLED_APPS += [ 'debug_toolbar', ] ...
让配置文件生效
要使配置文件生效,需要让 Django 知道我们要使用哪个配置文件,一种方式就是在命令行中传递这个 --settings=mysite.settings.dev 参数,如:
python manage.py runserver --settings=mysite.settings.dev python manage.py runserver --settings=mysite.settings.prod python manage.py migrate --settings=mysite.settings.prod
如果不希望每次指令都传递 --settings 参数,也可以通过修改 manage.py 文件实现使用不同的配置文件:
# manage.py import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev") # 修改这个位置 ...
在服务器上指定设置
生产环境下一般不会使用 runserver 指令运行,大多是通过 uwsgi 方式运行,修改 mysite/wsgi.py :
import os from django.core.wsgi import get_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 .base import * DEBUG = True #其他配置
3)启动服务时,用--setings指定配置
python manage.py runserver --settings=back-server.settings.dev
正式环境用uwsgi部署,则配置环境变量:DJANGO_SETTINGS_MODULE=back-server.settings.prod
总结
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- lol全球总决赛lck一号种子是谁 S14全球总决赛lck一号种子队伍
- BradMehldau-ApresFaure(2024)[24-96]FLAC
- IlCannone-FrancescaDegoPlaysPaganinisViolin(2021)[24-96]FLAC
- Tchaikovsky,Babajanian-PianoTrios-Gluzman,Moser,Sudbin[FLAC+CUE]
- 费玉清.1987-费玉清十周年旧曲情怀4CD【东尼】【WAV+CUE】
- 群星.2024-春花焰电视剧影视原声带【TME】【FLAC分轨】
- 方力申.2008-我的最爱新曲+精丫金牌大风】【WAV+CUE】
- 群星 《2024好听新歌35》十倍音质 U盘音乐 [WAV分轨][1.1G]
- 群星《烧透你的耳朵1》DXD金佰利 [低速原抓WAV+CUE][1.2G]
- 莫文蔚《超级金曲精选2CD》SONY [WAV+CUE][1.6G]
- 【RR】加尼克奥尔森GarrickOhlsso《贝多芬钢琴协奏曲全集》原声母带WAV
- 彭芳《纯色角1》[WAV+CUE]
- 李蔓《山顶的月亮—李蔓动态情歌》
- 梁咏琪.1999-新鲜【EEI】【WAV+CUE】
- 张琍敏.1979-悲之秋【海山】【FLAC分轨】