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时间戳与时间字符串互相转换实例代码
Nov 28 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
详解python中的文件与目录操作
Jul 11 Python
python使用itchat实现手机控制电脑
Feb 22 Python
Python列表生成式与生成器操作示例
Aug 01 Python
Python单元和文档测试实例详解
Apr 11 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
python dict如何定义
Sep 02 Python
如何利用Python 进行边缘检测
Oct 14 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安全配置
2006/10/09 PHP
需要注意的几个PHP漏洞小结
2012/02/05 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
浅析Ajax语法
2016/12/05 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
使用vue构建一个上传图片表单
2017/07/04 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
浅析NumPy 切片和索引
2020/09/02 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
社区庆八一活动方案
2014/02/02 职场文书
简单租房协议书
2014/04/09 职场文书
读书小明星事迹材料
2014/05/03 职场文书
车间安全生产标语
2014/06/06 职场文书
个人授权委托书格式
2014/08/30 职场文书
运动会加油稿100字
2014/09/19 职场文书
一条慢SQL语句引发的改造之路
2022/03/16 MySQL