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 16 Python
Python中的默认参数实例分析
Jan 29 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
谈一谈基于python的面向对象编程基础
May 21 Python
python语言基本语句用法总结
Jun 11 Python
Django框架安装方法图文详解
Nov 04 Python
Python pickle模块实现对象序列化
Nov 22 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
python else语句在循环中的运用详解
Jul 06 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
django注册用邮箱发送验证码的实现
Apr 18 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
ThinkPHP之import方法实例详解
2014/06/20 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
javascript常用方法汇总
2014/12/02 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
python中的对数log函数表示及用法
2020/12/09 Python
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
Python何绘制带有背景色块的折线图
2022/04/23 Python