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下使用Psyco模块优化运行速度
Apr 05 Python
python中map()函数的使用方法示例
Sep 29 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
python print 按逗号或空格分隔的方法
May 02 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
使用python 写一个静态服务(实战)
Jun 28 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Tensorflow 多线程设置方式
Feb 06 Python
python 如何快速复制序列
Sep 07 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 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
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
基于php下载文件的详解
2013/06/02 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
Javascript中prototype的使用详解
2016/06/18 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
Python 备份程序代码实现
2017/03/06 Python
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
母校寄语大全
2014/04/10 职场文书
售后客服工作职责
2014/06/16 职场文书
五好家庭事迹材料
2014/12/20 职场文书
初中家长评语和期望
2014/12/26 职场文书
天坛导游词
2015/02/02 职场文书
扬州个园导游词
2015/02/06 职场文书
幼儿园辞职书
2015/02/26 职场文书
开会通知短信大全
2015/04/20 职场文书
新娘婚礼致辞
2015/07/27 职场文书