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对象引用、可变性和垃圾回收详解
Aug 21 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
Python八皇后问题解答过程详解
Jul 29 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
Django数据库操作之save与update的使用
Apr 01 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
python 绘制场景热力图的示例
Sep 23 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 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中Socket创建与监听实现方法
2015/01/05 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
php批量修改表结构实例
2017/05/24 PHP
asp.net和php的区别点总结
2019/10/10 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
vue之浏览器存储方法封装实例
2018/03/15 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
详解python深浅拷贝区别
2019/06/24 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
简单了解python元组tuple相关原理
2019/12/02 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
银行职员个人的工作自我评价
2014/02/15 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
商铺租赁意向书
2014/04/01 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
四群教育工作总结
2015/08/10 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python