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通过索引遍历列表的方法
May 04 Python
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
Python实现的文轩网爬虫完整示例
May 16 Python
python pytest进阶之fixture详解
Jun 27 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
python中count函数简单的实例讲解
Feb 06 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
python实现梯度法 python最速下降法
Mar 24 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
Python如何输出百分比
Jul 31 Python
Python中os模块的简单使用及重命名操作
Apr 17 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
名片管理系统python版
2018/01/11 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
教育科学研究生自荐信
2013/10/09 职场文书
求职者简历中的自我评价
2013/10/20 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
结婚典礼主持词
2015/06/29 职场文书
办公用品管理制度
2015/08/04 职场文书
2019求职信大礼包
2019/05/15 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python