今天继续给大家介绍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 设置多环境配置文件载入问题相关推荐

  1. python文件路径改了需要重新配置环境吗_python自学环境配置

    写在前面,这是一个小白的操作日志 有兴趣的朋友可以留言和我一起学习 STEP1.Mac下安装home-brew (下载可能需要外网,觉得麻烦的可以省略这一步直接操作SETP2) 装完后输入brew d ...

  2. python 文件路径 变量_python路径变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...

  3. maven的安装、路径配置、修改库文件路径和eclipse中的配置、创建maven工程(转)...

    一.maven的安装 首先,先到官网去下载maven.这里是官网的地址:http://maven.apache.org/download.cgi  请选择最新的版本下载: 解压apache-maven ...

  4. python文件路径及目录

    一.python获取当前文件路径 引入包:import os 正确获取当前的路径 __file__是当前执行的文件 eg: 文件目录如下图: 在BaseModel.py中获取个文件目录 import ...

  5. python文件路径操作及pathlib库

    对文件的路径操作是一个非常基础的问题,但也是一个至关重要的问题,优雅的路径操作不仅可以让代码可读性更高:还可以让用户避免很多不必要的麻烦.python中路径操作常用的几种方式重要包括:字符串拼接.os ...

  6. python文件路径拼接多出斜杠_浅谈python中拼接路径os.path.join斜杠的问题

    浅谈python中拼接路径os.path.join斜杠的问题 调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠 directory1='/opt/apps/upgradePac ...

  7. python文件路径过滤器_SUMO入门(八) - 从Python引入TraCI接口

    SUMO入门(八) - 从Python引入TraCI接口 TraCI TraCI/Interfacing TraCI from Python TraCI命令分为13个部分,它们对应于各个模块: gui ...

  8. python 文件路径找不到_python路径正确但找不到文件

    python 为什么明明有这个文件路径,但有时候会找不到 整理路径,请用 os.path.normpath() 进行整理,然后你再试试,不要用 join a = os.path.normpath(&q ...

  9. python文件路径写法

    在python程序里面我们经常需要导入数据文件,Windows下的文件目录路径使用"\"来分隔.由于python代码里面,反斜杠"\"是转义符,例如" ...

最新文章

  1. 解决360浏览器偶发性会闪屏一下黑色的背景
  2. c++ string 拼接_String类5个常见面试题的解答过程和原理
  3. 用神经网络分类一维矩阵
  4. GDB怎么调试使用.sh(shell脚本)启动的程序?(未完成,待测试)
  5. 第一章 TensorFlow基础——python语法(三)
  6. 《我的青春谁做主》我想要的结局
  7. mybatis学习(28):获取自增id方式二(在全局中配置setting选项)
  8. [洪流学堂]Hololens修改图标icon
  9. Utility.cs
  10. SpringSecurity初步理解
  11. eagle php,使用EaglePHP打造自己的网站(非PHP程序员的菜鸟使用手册)
  12. 什么是消息队列(Message queue)
  13. [数据库]-- mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
  14. 使用win7自带的备份还原、创建系统镜像
  15. window10 1060 caffe 安装
  16. 新手学习FPGA----如何将软硬件程序固化进串行Flash芯片EPCS
  17. java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口
  18. #include<iostream.h>的前世今身
  19. IT各大技术经典视频教程大全 一
  20. 打卡定制版 最新H5早起打卡网抑云熬夜打卡+有支付/带教程

热门文章

  1. 超越SimCSE两个多点,Prompt+对比学习的文本表示新SOTA
  2. 机器学习算法总结之支持向量机(五)
  3. sql 插入新数据 如何处理等字符_新手们还在到处找报表资料吗?Intouch SQL 数据库脚本给你安排...
  4. oracle hcm 发展,甲骨文发布Oracle HCM Cloud云服务 呈现三大亮点
  5. Facebook广告费用如何出价?
  6. pycharm 运行后,如何查看变量值以及继续输入语句并运行?(非Debug , debug太慢)
  7. Leetcode每日一题:17.letter-combinations-of-a-phone-number(电话号码的字母组合) 0ms通过
  8. 瑞银报告 | 美国银行业科技支出:凡有的,还要加给他,叫他有余...
  9. 如何用android下载python_如何在android上运行Python代码
  10. 品质主管每日工作需要做哪些_游戏配音需要做哪些工作?