全网第一篇系列讲述Django线上项目实战的文章。python
上一篇咱们主要完成了Gua的POST请求,完善了RESTful API,实现了查询分页。那么这一节,咱们就要来讲一下如何把配置文件分离开来,以应对不同的工做环境。数据库
众所周知,在实际的软件开发过程当中,咱们写程序,确定是如今开发环境编写代码;当在开发环境编写完成咱们会把工程切换到测试环境,开始测试工做;在完成测试全部任务以后,确认项目正常运转,最后咱们就会切换到正式环境,也就是线上环境。因此,在这其中,就有三个环境须要咱们分别配置:bash
你们是否想过,在咱们的Django工程里,只有一个PeekpaHubTech/settings.py
文件是配置文件。若是咱们每次都为了切换不一样的环境,而修改咱们的setting.py
文件,会不会很麻烦?并且很容易发生错误。那么今天,皮爷就交给你们如何来拆分setting.py
文件,来针对不一样的开发环境来作不一样的项目配置。微信
首先,在PeekpaHubTech
文件夹下面,也就是和settings.py
文件夹同级。咱们先建立一个settings
文件夹,同时,里面,里面要有一个叫__init__.py
的空文件。app
这个文件的做用就是让咱们的settings
文件夹底下的py
文件,能够被其余地方的代码做为impot
的对象引入。学习
接着,咱们在settings
文件夹底下,建立一个base.py
文件和develop.py
文件。固然,你有多少环境,就能够建立多少个py
文件夹。好比online.py
,test.py
等等测试
咱们把原先的settings.py
文件里面的内容,所有移动到base.py
文件中。网站
在你建立的不一样环境的py
文件的第一行,写入一下代码:ui
from .base import * #NOQA复制代码
后面加了一个#NOQA
只是为了避免让PEP8来检查咱们这个文件。spa
我这里是之建立了一个develop.py
文件,因此,你能够把你在开发环境下面的配置信息,都填写到你对应的py
文件夹下面,好比,我这里就把base.py
文件夹里面的DATABASE
移动到了develop.py
文件夹下,固然,通常来讲,咱们不一样环境之间的切换,数据库环境的切换算是一个大头。
下面就是个人develop.py
文件:
from .base import * #NOQAfrom mongoengine import connect# SECURITY WARNING: don't run with debug turned on in production!DEBUG = TrueDATABASES = { 'default': { 'ENGINE': None, },}connect(CONFIG_JSON.get("mongo_databses").get("aliyun").get("config").get("database_name"), host=CONFIG_JSON.get("mongo_databses").get("aliyun").get("config").get("host"), port=CONFIG_JSON.get("mongo_databses").get("aliyun").get("config").get("port"))复制代码
很是的简介。这样,你就能够保证你在切换不一样的环境的时候,让系统启动时,读取不一样的配置信息就能够了。
这个时候,项目的工程样子就长这样:
这个时候,由于你已经把以前的settings.py
文件移动到了settings
文件夹下面,因此PeekpahubTech/settings.py
文件你就能够删掉了。
在配置好PeekpahubTech/settings/base.py
文件和PeekpahubTech/settings/develop.py
文件以后,咱们须要在项目的两个地方作一下修改:
manage.py
PeekpahubTech/wsgi.py
这里,先说manage.py
文件。咱们须要把:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings')复制代码
改为:
profile = os.environ.get('PROJECT_PROFILE', 'develop')os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings.%s' % profile)复制代码
一样的,在PeekpahubTech/wsgi.py
文件里,咱们须要把:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings')复制代码
改为
profile = os.environ.get('PROJECT_PROFILE', 'develop')os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings.%s' % profile)复制代码
至此,全部操做就都算是修改完成了。
若是你在终端,经过命令行的命令python manage.py runserver
记住,这两个地方必定要改。这里的代码也很简单,就是把咱们的项目换成了develop
环境而已。
若是都修改好了,可是点击PyCharm右上角的绿色运行按钮发现报错,那么别慌,咱们须要调整一下PyCharm运行的参数环境。
点击那个Edit Configuration
,而后来到这个界面:
看到Environment variables
,而后咱们点进去:
在value
里面,填写正确的setting地址就能够了。
喜欢的同窗,能够把皮爷的文章分享出来,让跟多的人一块儿来学习。这个系列教程的文章,皮爷都会讲源代码放到 GitHub 上,想要获取代码的同窗,请关注微信公众号『皮爷撸码』,而后回复『网站代码』便可得到连接地址。这里有更多更好玩的东西,等你一块儿来学习提升。