创建项目及配置
项目创建
首先创建一个新的虚拟环境,安装 django 版本为 1.11.9。
拆分配置settings
现在的项目目录如图所示
settings.py 是单独的模块,在进行开发环境、测试环境和线上环境配置时不太容易处理,如果只在这一个文件里写环境的配置,维护起来十分麻烦。因此,需要把这个 settings.py 拆成一个 package ,不同的配置分别定义为不同的模块。
在 typeidea 的目录结构中创建 settings 包,将原有的 settings.py 移至该包中,并改名为 base.py,并在该包下创建develop.py,此使,项目的目录结构如图所示
创建好之后,修改 settings 配置、时区和语言配置
# base.py 文件中需要修改的部分,其他部分省略
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
之后把数据库的配置剪切粘贴到 develop.py 中,然后在 develop.py 文件的最上面引入 base 的所有配置。完整的 develop.py 文件如下:
from .base import *
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
拆分完 settings 之后,还需要修改两个文件 manage.py 和 typeidea/wsgi.py,因为 Django 启动时需要知道 settings 文件的路径。因此,需要把这两个文件中的这一行代码:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "typeidea.settings")
替换为如下两行:
profile = os.environ.get('TYPEIDEA_PROFILE', 'develop')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "typeidea.settings.%s" % profile)
这样做的逻辑是,通过读取系统环境变量中的 TYPEIDEA_PROFILE 来控制 Django 加载不同的 settings 文件,以此达到开发环境使用 develop.py 这个配置、而线上环境使用 product.py 这个配置(现在还没创建 product.py)的目的。
到此,整个项目结构和开发环境的配置就完成了。