python文件路径改了需要重新配置环境吗_Django 设置多环境配置文件载入问题
今天继续给大家介绍django 多环境配置的相关内容,本文重点给大家介绍Django 设置多环境配置文件载入的相关知识,一起看看吧。
起步
通常,针对不同的开发环境,需要不同的配置保证程序可运行且不干扰。单个 settings.py 文件就很难满足需求,需要将他拆分为多个文件,根据特定环境载入不同的配置文件。一种简单的划分就是分为 4 个文件:
__init__.py
base.py
dev.py
prod.py
基本结构
一个初始的 Django 项目目录结构如下:
mysite/
|-- mysite/
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| +-- wsgi.py
+-- manage.py
这时候要做的就是创建一个名为 settings 的文件夹,将 settings.py 重命名为 base.py 并放入文件夹内:
mysite/
|-- mysite/
| |-- __init__.py
| |-- settings/ <-- 新建的文件夹
| | |-- __init__.py <--
| | |-- base.py <-- 旧的 settings.py
| | |-- cli.py <-- 根据不同环境而新增的配置文件
| | |-- dev.py
| | +-- prod.py
| |-- urls.py
| +-- wsgi.py
+-- manage.py
base.py 顾名思义,它将成为所有环境的通用配置,扩展的配置文件需要将 base.py 导入:
# settings/dev.py
from .base import *
DEBUG = True
INSTALLED_APPS += [
'debug_toolbar',
]
...
让配置文件生效
要使配置文件生效,需要让 Django 知道我们要使用哪个配置文件,一种方式就是在命令行中传递这个 --settings=mysite.settings.dev 参数,如:
python manage.py runserver --settings=mysite.settings.dev
python manage.py runserver --settings=mysite.settings.prod
python manage.py migrate --settings=mysite.settings.prod
如果不希望每次指令都传递 --settings 参数,也可以通过修改 manage.py 文件实现使用不同的配置文件:
# manage.py
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.dev") # 修改这个位置
...
在服务器上指定设置
生产环境下一般不会使用 runserver 指令运行,大多是通过 uwsgi 方式运行,修改 mysite/wsgi.py :
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings.prod")
application = get_wsgi_application()
通过修改DJANGO_SETTINGS_MODULE环境变量指向所需的配置文件。
下面看下django settings多环境配置
通常我们会把本地、线上的配置拆分,django不同环境的配置可如下:
1.在settings.py同级目录添加settings文件夹
2.把settings.py移到settings文件夹内,并重命名为base.py
3.添加dev.py, prod.py到settings文件夹
4.base.py中的根目录,要改成:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__, os.pardir))))
说明:
1)一些公共配置,放在base.py中。其他因环境而不同的配置,加到local.py/prod.py中
2)dev.py/prod.py,需要把base.py中的配置导入
from .base import *
DEBUG = True
#其他配置
3)启动服务时,用--setings指定配置
python manage.py runserver --settings=back-server.settings.dev
正式环境用uwsgi部署,则配置环境变量:DJANGO_SETTINGS_MODULE=back-server.settings.prod
总结
到此这篇关于Django 设置多环境配置文件载入的文章就介绍到这了,更多相关django 配置文件载入内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!
python文件路径改了需要重新配置环境吗_Django 设置多环境配置文件载入问题相关推荐
- python文件路径改了需要重新配置环境吗_python自学环境配置
写在前面,这是一个小白的操作日志 有兴趣的朋友可以留言和我一起学习 STEP1.Mac下安装home-brew (下载可能需要外网,觉得麻烦的可以省略这一步直接操作SETP2) 装完后输入brew d ...
- python 文件路径 变量_python路径变量
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...
- maven的安装、路径配置、修改库文件路径和eclipse中的配置、创建maven工程(转)...
一.maven的安装 首先,先到官网去下载maven.这里是官网的地址:http://maven.apache.org/download.cgi 请选择最新的版本下载: 解压apache-maven ...
- python文件路径及目录
一.python获取当前文件路径 引入包:import os 正确获取当前的路径 __file__是当前执行的文件 eg: 文件目录如下图: 在BaseModel.py中获取个文件目录 import ...
- python文件路径操作及pathlib库
对文件的路径操作是一个非常基础的问题,但也是一个至关重要的问题,优雅的路径操作不仅可以让代码可读性更高:还可以让用户避免很多不必要的麻烦.python中路径操作常用的几种方式重要包括:字符串拼接.os ...
- python文件路径拼接多出斜杠_浅谈python中拼接路径os.path.join斜杠的问题
浅谈python中拼接路径os.path.join斜杠的问题 调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠 directory1='/opt/apps/upgradePac ...
- python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口
SUMO入门(八) - 从Python引入TraCI接口 TraCI TraCI/Interfacing TraCI from Python TraCI命令分为13个部分,它们对应于各个模块: gui ...
- python 文件路径找不到_python路径正确但找不到文件
python 为什么明明有这个文件路径,但有时候会找不到 整理路径,请用 os.path.normpath() 进行整理,然后你再试试,不要用 join a = os.path.normpath(&q ...
- python文件路径写法
在python程序里面我们经常需要导入数据文件,Windows下的文件目录路径使用"\"来分隔.由于python代码里面,反斜杠"\"是转义符,例如" ...
最新文章
- 解决360浏览器偶发性会闪屏一下黑色的背景
- c++ string 拼接_String类5个常见面试题的解答过程和原理
- 用神经网络分类一维矩阵
- GDB怎么调试使用.sh(shell脚本)启动的程序?(未完成,待测试)
- 第一章 TensorFlow基础——python语法(三)
- 《我的青春谁做主》我想要的结局
- mybatis学习(28):获取自增id方式二(在全局中配置setting选项)
- [洪流学堂]Hololens修改图标icon
- Utility.cs
- SpringSecurity初步理解
- eagle php,使用EaglePHP打造自己的网站(非PHP程序员的菜鸟使用手册)
- 什么是消息队列(Message queue)
- [数据库]-- mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
- 使用win7自带的备份还原、创建系统镜像
- window10 1060 caffe 安装
- 新手学习FPGA----如何将软硬件程序固化进串行Flash芯片EPCS
- java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口
- #include<iostream.h>的前世今身
- IT各大技术经典视频教程大全 一
- 打卡定制版 最新H5早起打卡网抑云熬夜打卡+有支付/带教程
热门文章
- 超越SimCSE两个多点,Prompt+对比学习的文本表示新SOTA
- 机器学习算法总结之支持向量机(五)
- sql 插入新数据 如何处理等字符_新手们还在到处找报表资料吗?Intouch SQL 数据库脚本给你安排...
- oracle hcm 发展,甲骨文发布Oracle HCM Cloud云服务 呈现三大亮点
- Facebook广告费用如何出价?
- pycharm 运行后,如何查看变量值以及继续输入语句并运行?(非Debug , debug太慢)
- Leetcode每日一题:17.letter-combinations-of-a-phone-number(电话号码的字母组合) 0ms通过
- 瑞银报告 | 美国银行业科技支出:凡有的,还要加给他,叫他有余...
- 如何用android下载python_如何在android上运行Python代码
- 品质主管每日工作需要做哪些_游戏配音需要做哪些工作?