Django 多环境配置详解


Posted in Python onMay 14, 2019

本文也是开发项目中的一个小经验Tip,虽然很简单,但对很多朋友也有小帮助。

我们实际工程中,可能遇到开发环境、预上线环境、线上环境等环境场景,应用配置因此可能有所不同。

我的经验是利用环境变量来定义应用运行环境,并在代码中做对应的判定。

具体来说,我在settings.py中增加了一些判定代码,大概如下:

APP_ENV = os.getenv('APP_ENV')
if APP_ENV == 'prod':
  from ._settings.prod_settings import *
elif APP_ENV == 'test':
  from ._settings.test_settings import *
else:
  from ._settings.dev_settings import *

首先取环境变量APP_ENV,根据APP_ENV不通加载_settings包中的不同配置文件。

比如,prod_settings.py中关闭了DEBUG:

# -*- coding: utf-8 -*-
 
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

而在test_settings.py中开启了DEBUG:

# -*- coding: utf-8 -*-
 
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

在启动wsgi容器的时候,我们可以指定APP_ENV环境变量。

比如,利用manage.py做开发的时候:

ZDEVOPS_ENV=test python manage.py runserver

再比如,用systemctl做生产部署的时候:

# 环境变量
Environment='APP_ENV=prod'
# 进程工作目录
WorkingDirectory=/www/python/myapp
# 执行命令
ExecStart=/usr/bin/gunicorn apps.wsgi:application -w 4 -b 127.0.0.1:8000

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之不要红头文件(1)
Sep 28 Python
Python原始字符串(raw strings)用法实例
Oct 13 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
没编程基础可以学python吗
Jun 17 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
Django 实现图片上传和下载功能
Dec 31 Python
python munch库的使用解析
May 25 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 29 Python
python仿evething的文件搜索器实例代码
May 13 #Python
python爬虫租房信息在地图上显示的方法
May 13 #Python
详解如何设置Python环境变量?
May 13 #Python
详解python运行三种方式
May 13 #Python
OpenCV图像颜色反转算法详解
May 13 #Python
搞清楚 Python traceback的具体使用方法
May 13 #Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 #Python
You might like
PHP4之COOKIE支持详解
2006/10/09 PHP
php db类库进行数据库操作
2009/03/19 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
解析php中反射的应用
2013/06/18 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python 数据加密代码
2008/12/24 Python
python异常和文件处理机制详解
2016/07/19 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python引用计数操作示例
2018/08/23 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
在python shell中运行python文件的实现
2019/12/21 Python
python能开发游戏吗
2020/06/11 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
软件测试题目
2013/02/27 面试题
办公室文员工作职责
2014/01/31 职场文书
生日主持词
2014/03/20 职场文书
应急处置方案
2014/06/16 职场文书
人事聘任通知
2015/04/21 职场文书
导游词之山西关帝庙
2019/11/01 职场文书