Django 开发环境与生产环境的区分详解


Posted in Python onJuly 26, 2019

Django 开发环境与生产环境的设置

在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样。对于这些不同之处,以前的做法是直接修改生产环境中的配置。但是对于立志自动化体系的开发者来说,显然这是极其愚蠢的。

那么常规的做法是什么呢?既然是不同的环境,两份不同的配置文件是必须的。

准备配置文件

在新建的Django项目中与settings.py同级目录下,准备两份不同的settings:

|____EveryDay
| |____prd_settings.py
| |______init__.py
| |____settings.py
| |____dev_settings.py
| |____urls.py
| |____wsgi.py

从默认的setting中导入不同的配置

在这里,我并不打算修改django默认的配置模块:settings.py。而是通过辨别当前环境是生产环境还是开发环境来区分加载不同的配置。so,我们需要通过设置一个生产环境才有的环境变量,然后在settings.py中判断这个环境变量的存在与否来决定导入哪一份配置。

show code:

# settings.py
import os

# Default settings between dev and prd

if os.environ.get('ENV', None):
  from .prd_settings import *
else:
  from .dev_settings import *

因为服务器使用的是CentOS7,我们直接在/etc/profile中增加环境变量

export ENV="SERVER"

从运行时中导入不同的配置

manage.py在运行时还提供了?settings选项用于指定settings模块,因此用于启动django自带的debug服务器还是挺方便的。

python manage.py rumserver 0.0.0.0:8000 --settings=EveryDay.prd_settings

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
浅析Python四种数据类型
Sep 26 Python
浅谈Python中的bs4基础
Oct 21 Python
python实现简单flappy bird
Dec 24 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
Python爬虫之Selenium库的使用方法
Jan 03 Python
python scrapy简单模拟登录的代码分析
Jul 21 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 #Python
如何实现Django Rest framework版本控制
Jul 25 #Python
python requests使用socks5的例子
Jul 25 #Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 #Python
Django实现跨域请求过程详解
Jul 25 #Python
Django Rest framework认证组件详细用法
Jul 25 #Python
Django Rest framework权限的详细用法
Jul 25 #Python
You might like
利用php来自动调用不同服务器上的flash
2006/10/09 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
红黑树的插入详解及Javascript实现方法示例
2018/03/26 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python用插值法绘制平滑曲线
2021/02/19 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
一套软件测试笔试题
2014/07/25 面试题
会计自我鉴定范文
2013/10/06 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
关于读书的演讲稿
2014/05/07 职场文书
村班子对照检查材料
2014/08/18 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书