Django 项目创建的基本配置流程
前言
初学Django 框架,解决了项目配置上的问题,以后才能更加顺利地去完成项目的搭建。
创建项目仓库
目的
在gitee/github创建项目,可以clone到本地,方便进行版本管理
操作过程
- 登录gitee/github创建项目
- clone项目到本地
- 在仓库文件中创建项目
- 上传push到远程仓库
注意点: 项目打开后会产生.idea文件,用于存放pycharm的相关设置,不需要上传到仓库进行管理。可以通过在.ignore文件中添加 #.idea 信息
pycharm中配置仓库
配置目录:setting - Version Control
将文件加入到暂存区: 右击文件 - Git - add
上传到仓库: VCS - commint (暂存区,填写相关版本信息)- git - push
开发环境配置
目的
配置项目的两套运行环境:生产环境,开发环境
流程
- 创建settings包,包里创建dev.py和prod.py文件(复制setting.py信息进去)
- 修改启动加载文件配置(manager.py)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mdproject.setting.dev(或者prod)")
配置模板引擎
目的
Django框架模板默认使用的是Django模板,使用其他模板如(jinja2)需要进行模板配置
流程
- 创建templates文件夹
- 配置相关的模板语法(…/dev.py)
2.1 jinja2模板官方配置https://yiyibooks.cn/xx/Django_1.11.6/topics/templates.html
2.1.1 配置TEMPLATES
TEMPLATES = [
{
'BACKEND': 'django.template.backends.jinja2.Jinja2', # 加载jinja2引擎
'DIRS': [os.path.join(BASE_DIR,'templates')], #模板存储位置
...
'OPTIONS': {
'environment':'meiduo_mall.utils.my_jinja2.environment', #设置全局的环境变量方法
...
],
},
},
]
2.1.2 配置环境变量
工程目录下创建utils文件夹,- my_jinja2.py
from __future__ import absolute_import # Python 2 only
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
from jinja2 import Environment
def environment(**options):
env = Environment(**options)
env.globals.update({
'static': staticfiles_storage.url, # static方法
'url': reverse, #url方法
})
return env
配置数据库
配置MySQL
官方文档:https://yiyibooks.cn/xx/Django_1.11.6/ref/settings.html#std:setting-DATABASES
- 配置DATABASES(…/dev.py)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': 'id',
'PORT': '3306',
}
}
- 创建数据库
- 配置mysql驱动文件,工程文件的(init.py)
import pymysql
pymysql.install_as_MySQLdb()
配置Redis
官方文档:https://django-redis-chs.readthedocs.io/zh_CN/latest/
- 配置Redis储存信息(…/dev.py)
# redis配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
"session": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
# session状态保持信息存储位置
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"
日志文件配置
目的
可以配置日志信息, 记录用户的访问行为, 或者程序运行的行为
流程
官方文档:
- 日志配置(…/dev.py)
# 日志
LOGGING = {
'version': 1,
'disable_existing_loggers': False, # 是否禁用已经存在的日志器
'formatters': { # 日志信息显示的格式
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
},
},
'filters': { # 对日志进行过滤
'require_debug_true': { # django在debug模式下才输出日志
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': { # 日志处理方法
'console': { # 向终端中输出日志
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file': { # 向文件中输出日志
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(os.path.dirname(BASE_DIR), 'logs/meiduo.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': { # 日志器
'django': { # 定义了一个名为django的日志器
'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志
'propagate': True, # 是否继续传递日志信息
'level': 'INFO', # 日志器接收的最低日志级别
},
}
}
- 在工程目录下创建logs文件夹
配置静态文件
官方文档:https://yiyibooks.cn/xx/Django_1.11.6/ref/settings.html#std:setting-STATICFILES_DIRS
2. 配置静态文件 static的存储位置(…/dev.py)
# 配置静态文件资源存储位置的(绝对路径)
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static')
]
- 工程目录下导入静态文件
创建子应用
- 工程目录下创建apps包(负责管理所有的子应用)
- 进入apps包中创建子应用
python ../../ manager.py startapp 名称
- 注册子应用(…/dev.py)
设置导包路径
当使用apps中的子应用,可以省去前缀
- 设置路径(dev.py)
import sys
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
设置导包路径时后导包,pycharm出现爆红相关问题
转载:
https://blog.csdn.net/GentleCP/article/details/87395869