全网第一篇系列讲述Django线上项目实战的文章。
上一篇我们主要完成了Gua的POST请求,完善了RESTful API,实现了查询分页。那么这一节,我们就要来说一下如何把配置文件分离开来,以应对不一样的工作环境。
众所周知,在实际的软件开发过程中,我们写程序,肯定是现在开发环境编写代码;当在开发环境编写完成我们会把工程切换到测试环境,开始测试工作;在完成测试所有任务之后,确认项目正常运转,最后我们就会切换到正式环境,也就是线上环境。所以,在这其中,就有三个环境需要我们分别配置:
大家是否想过,在我们的Django工程里,只有一个PeekpaHubTech/settings.py
文件是配置文件。如果我们每次都为了切换不同的环境,而修改我们的setting.py
文件,会不会很麻烦?而且很容易发生错误。那么今天,皮爷就交给大家如何来拆分setting.py
文件,来针对不同的开发环境来做不同的项目配置。
首先,在PeekpaHubTech
文件夹下面,也就是和settings.py
文件夹同级。我们先创建一个settings
文件夹,同时,里面,里面要有一个叫__init__.py
的空文件。
这个文件的作用就是让我们的settings
文件夹底下的py
文件,可以被其他地方的代码作为impot
的对象引入。
接着,我们在settings
文件夹底下,创建一个base.py
文件和develop.py
文件。当然,你有多少环境,就可以创建多少个py
文件夹。比如online.py
,test.py
等等
我们把原先的settings.py
文件里面的内容,全部移动到base.py
文件中。
在你创建的不同环境的py
文件的第一行,写入一下代码:
from .base import * #NOQA
后面加了一个#NOQA
只是为了不让PEP8来检查我们这个文件。
我这里是之创建了一个develop.py
文件,所以,你可以把你在开发环境下面的配置信息,都填写到你对应的py
文件夹下面,比如,我这里就把base.py
文件夹里面的DATABASE
移动到了develop.py
文件夹下,当然,一般来说,我们不同环境之间的切换,数据库环境的切换算是一个大头。
下面就是我的develop.py
文件:
from .base import * #NOQA
from mongoengine import connect
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
DATABASES = {
'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地址就可以了。
好了,系列文章今天这一章节就先说到这里,正好马上就要双11了,又到了一年一度买服务器的时候了。照目前的趋势,皮爷今年肯定又会购买服务器了,服务器是真的不嫌多啊,一台服务器可以写网站,两台服务器就可以玩 RPC,三台可以搞集群。。。
下面这个链接大家可以在双十一的时候在阿里云享受优惠,注意,每年就此一次,错过了可就要等一年的哦:
https://www.aliyun.com/1111/2019/group-buying-share?ptCode=59102A206508DC8B402167FFD766D480647C88CF896EF535&userCode=nrkmbo9q&share_source=copy_link
喜欢的同学,可以把皮爷的文章分享出来,让跟多的人一起来学习。这个系列教程的文章,皮爷都会讲源代码放到 GitHub 上,想要获取代码的同学,请关注微信公众号『皮爷撸码』,然后回复『网站代码』即可获得链接地址。这里有更多更好玩的东西,等你一起来学习提高。