一、创建工程
1. 准备项目代码仓库
1.源码托管网站
- GitHub
- 码云
1.进入本地项目目录
cd Desktop/
2.克隆仓库
git clone https://github.com/qruihua/itheima_blog.git
3. 创建美多商城工程
1.进入本地项目仓库
cd itheima_blog/
2.创建美多商城虚拟环境,安装Django框架
$ mkvirtualenv -p python3 blog
$ pip install django==2.2
3.创建美多商城Django工程
$ django-admin startproject blog
创建工程完成后:运行程序,测试结果。
二、配置MySQL数据库 1. 新建MySQL数据库1.新建MySQL数据库:blog
$ create database blog charset=utf8;
2.新建MySQL用户
$ create user itheima identified by '123456';
3.授权itheima用户访问blog数据库
$ grant all on blog.* to 'itheima'@'%';
4.授权结束后刷新特权
$ flush privileges;
2. 配置MySQL数据库
文档
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'itheima', # 数据库用户名
'PASSWORD': '123456', # 数据库用户密码
'NAME': 'blog' # 数据库名字
},
}
文档
可能出现的错误
- Error loading MySQLdb module: No module named 'MySQLdb'.
出现错误的原因:
- Django中操作MySQL数据库需要驱动程序MySQLdb
- 目前项目虚拟环境中没有驱动程序MySQLdb
解决办法:
- 安装PyMySQL扩展包
- 因为MySQLdb只适用于Python2.x的版本,Python3.x的版本中使用PyMySQL替代MySQLdb
1.安装驱动程序
$ pip install PyMySQL
2.在工程同名子目录的__init__.py
文件中,添加如下代码:
import pymysql
pymysql.install_as_MySQLdb()
配置完成后:运行程序,测试结果。
三、配置Redis数据库 1. 安装django-redis扩展包1.安装django-redis扩展包
$ pip install django-redis
2.django-redis使用说明文档
点击进入文档
2. 配置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",
}
},
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"
default:
- 默认的Redis配置项,采用0号Redis库。
session:
- 状态保持的Redis配置项,采用1号Redis库。
SESSION_ENGINE
- 修改
session存储机制
使用Redis保存。
SESSION_CACHE_ALIAS:
- 使用名为"session"的Redis配置项存储
session数据
。
配置完成后:运行程序,测试结果。
四、配置工程日志文档
1. 配置工程日志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/blog.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': { # 日志器
'django': { # 定义了一个名为django的日志器
'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志
'propagate': True, # 是否继续传递日志信息
'level': 'INFO', # 日志器接收的最低日志级别
},
}
}
2. 准备日志文件目录
不同的应用程序所定义的日志等级可能会有所差别,分的详细点的会包含以下几个等级:
- FATAL/CRITICAL = 重大的,危险的
- ERROR = 错误
- WARNING = 警告
- INFO = 信息
- DEBUG = 调试
- NOTSET = 没有设置
import logging
# 创建日志记录器
logger = logging.getLogger('django')
# 输出日志
logger.debug('测试logging模块debug')
logger.info('测试logging模块info')
logger.error('测试logging模块error')
添加代码测试日志:

from django.contrib import admin
from django.urls import path
# 1.导入系统的logging
import logging
# 2.创建日志器
logger = logging.getLogger('django')
from django.http import HttpResponse
def log(request):
# 使用日志器记录信息
logger.info('info')
return HttpResponse('test')
urlpatterns = [
path('admin/', admin.site.urls),
path('', log)
]
STATIC_URL = '/static/'
# 配置静态文件加载路径
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
配置完成后:运行程序,测试结果。
- http://127.0.0.1:8000/static/index.html