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 19 Python
跟老齐学Python之重回函数
Oct 10 Python
python中getaddrinfo()基本用法实例分析
Jun 28 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
python构建基础的爬虫教学
Dec 23 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 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 Curl多线程原理实例详解
2013/11/06 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
深入讲解Python编程中的字符串
2015/10/14 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Python类的继承用法示例
2019/01/31 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python实现智能语音天气预报
2019/12/02 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
python SOCKET编程基础入门
2021/02/27 Python
html5 标签
2009/07/16 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
XML文档面试题
2015/08/05 面试题
路政管理专业推荐信
2013/11/11 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
女方回门宴答谢词
2014/01/14 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
敬老模范事迹
2014/05/21 职场文书
学习雷锋标语
2014/06/25 职场文书
文言文辞职信
2015/02/28 职场文书
2015年班组长工作总结
2015/04/10 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python