上一章我们把项目创建好后,这章主要讲对项目的数据库配置,进行项目数据的存储
1 配置环境
- 准备配置文件目录
- 新建包,命名为settings,作为配置文件目录
- 准备开发和生产环境配置文件
- 在配置包settings中,新建开发和生产环境配置文件
- 准备开发环境配置内容
- 将默认的配置文件settings.py中内容拷贝至dev.py
配置完成后,视图如下:
2 配置Jinja2模板引擎
使用Jinja2模板引擎
。
$ pip install Jinja2
2. 配置Jinja2模板引擎
直接复制原来的,然后进行Jinja2的配置
3. 补充Jinja2模板引擎环境
新建utils包,然后增加jinja2_env.py。在环境中配置如下代码
from jinja2 import Environment
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
def jinja2_environment(**options):
env = Environment(**options)
env.globals.update({
'static': staticfiles_storage.url, # 获取静态文件的前缀
'url': reverse, # 反向解析
})
return env
"""
确保可以使用模板引擎中的{{ url('') }} {{ static('') }}这类语句
"""
3 关系数据库配置
数据库配置涉及到两种情况,1个是,一个项目只有1个数据库,一个是1个项目有多个数据库
这里先只针对单个数据库的,后续会补充多个数据库的配置方式
1 安装PyMySQL扩展包,django默认配置的是sqlite3,这里较怎么配置mysql
2 然后在项目文件的init中,增加下如下代码
3 之后,在setting中,对文件进行配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': '127.0.0.1', # 数据库主机
'PORT': , # 数据库端口
'USER': '', # 数据库用户名
'PASSWORD': '', # 数据库用户密码
'NAME': '' # 数据库名字
}
}
4 有些人配置完后,可能出现如下错误
是因为缺少了cryptography这个包,只要安装下就好
5 再进行连接测试,可正常连接
4 非关系数据库配置
这章根据项目需求进行配置,非必选。因为我项目打算弄成平台化,涉及登录,所以
需要redis库来进行缓存处理。所以需要配置redis库
1 首先进行redis库安装
2 这里扩展下,redis本身的安装
- 到github上进行版本下载,地址:https://github.com/tporadowski/redis/releases
- 下载完成后,对文件进行解压
- 开启一个cmd窗口,cd到解压完的文件
- 执行命令.\redis-server.exe redis.windows.conf
- 原窗口不要改动,再启动一个窗口,执行命令 .\redis-cli
- 对redis进行测试,如下代表正常安装完
3 在django的setting中数据库配置
# redis缓存
CACHES = {
"default": { # 默认
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
"session": { # session
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
"verify_code": { # 验证码
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/2",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"
4 配置完成,进行测试