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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
Python实现从百度API获取天气的方法
Mar 11 Python
python+Django+apache的配置方法详解
Jun 01 Python
安装Python的教程-Windows
Jul 22 Python
python skimage 连通性区域检测方法
Jun 21 Python
python学习之hook钩子的原理和使用
Oct 25 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
详解python中各种文件打开模式
Jan 19 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
Python中X[:,0]和X[:,1]的用法
May 10 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
PHP对字符串的递增运算分析
2010/08/08 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
使用python实现扫描端口示例
2014/03/29 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
wxPython色环电阻计算器
2019/11/18 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
《威尼斯的小艇》教学反思
2014/02/17 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
解除施工合同协议书
2014/10/17 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
升学宴来宾致辞
2015/07/27 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
python pygame入门教程
2021/06/01 Python
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
Django中celery的使用项目实例
2022/07/07 Python