Django开发项目的一些设置
以项目为shop
为例
开发环境配置
我们通常需要具备多个环境的配置文件,如开发环境和生产环境,并进行切换
创建包shop/shop/settings
在其中可以创建dev.py
表示开发环境,prod.py
表示生产环境
在manage.py
中修改代码即可
import os
import sys
if __name__ == "__main__":
# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings.dev")
配置mysql
-
在配置文件中配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'shop', 'USER': 'root', 'PASSWORD': '491521', 'HOST': '127.0.0.1', 'PORT': '3306' } }
-
在
__init__.py
中配置pymysql
的驱动# 配置pymysql作为数据库驱动 import pymysql pymysql.install_as_MySQLdb()
配置Jinja2
模板引擎
-
创建
shop/shop/utils
包,在其中创建my_jinja2
文件,在其中编写代码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, 'url': reverse, }) return env
-
在配置文件中进行配置
TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2', # 加载jinja2引擎 'DIRS': [os.path.join(BASE_DIR,'templates')], #模板存储位置 'APP_DIRS': True, 'OPTIONS': { 'environment':'shop.utils.my_jinja2.environment', #设置全局的环境变量方法 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
配置redis数据库
安装第三方
pip install django-redis==4.8.0
-
在
settings
配置文件中配置# redis配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "491521", } }, "session": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PASSWORD": "491521", } } } # session状态保持信息存储位置 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "session"
日志工程的配置
- 目的: 可以配置日志信息, 记录用户的访问行为, 或者程序运行的行为
创建文件夹
logs
-
在配置文件中进行配置
# 日志 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(BASE_DIR, 'logs/meiduo.log'), # 日志文件的位置 'maxBytes': 300 * 1024 * 1024, 'backupCount': 10, 'formatter': 'verbose' }, }, 'loggers': { # 日志器 'django': { # 定义了一个名为django的日志器 'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志 'propagate': True, # 是否继续传递日志信息 'level': 'INFO', # 日志器接收的最低日志级别 }, } }
静态文件集成
- 目的: 可以将项目中用到的静态文件集成到工程中
创建文件夹
static
-
在配置文件中配置
# 配置静态文件资源存储位置的(绝对路径) STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ]