1.1 创建工程
1. 准备项目代码仓库:meiduo_project
( 这里名称可换 )
2. 克隆项目代码仓库
进入桌面:cd Desktop
3. 克隆仓库:git clone 创建的远端地址
例如:
git clone https://gitee.com/zjsharp/meiduo_project.git
4. 进入仓库配置用户信息:
git config user.name '用户名'
git config user.email '邮箱地址'
5. 进入远程仓库,查看是否有隐藏文件.git,
进入.git查看配置信息:cat config
我们会发现在桌面就有了 meiduo_project 文件夹,该文件夹就是我们以后的工作区了。该文件夹中含有 .git 隐藏文件,这个文件夹作为本地仓库。
创建美多商城工程
1. 创建美多商城虚拟环境:
mkvirtualenv meiduo_mall -p python3
参数解读:
mkvirtualenv :创建虚拟环境的命令
meiduo_mall :创建后的虚拟环境名称(可以更换)
-p :指定创建的虚拟环境中使用的 python 解释器版本
python3 :指定在虚拟环境中使用 python3 解释器
2. 查看虚拟环境: workon
3. 进入虚拟环境: workon 虚拟环境名称
4. 创建虚拟环境后,在虚拟环境中安装 django 版本为 2.2.5:
pip install django==2.2.5
参数解读:
pip :包管理工具, 可以使用这个命令来安装项目中使用的包
install :安装命令
django==2.2.5 :安装的 django 版本为2.2.5
5. 查看安装包: pip list
6. 利用刚刚安装的 django 命令, 创建美多商城工程:
django-admin startproject meiduo_mall
参数解读:
django-admin :这是创建工程使用的命令, 这个命令需要你在虚拟环境中安装过 django 才可以调用
startproject :创建项目使用的命令
meiduo_mall :创建的项目名称
加入前端文件,前后端分离模式:
运行前端文件:先进入 front_end_pc ,再运行前端服务器:
python -m http.server 8080
1.2 配置开发环境
1. 新建配置文件:准备配置文件目录
在内层 meiduo_mall 下:新建一个包,命名为
settings,作为配置文件目录
2. 准备开发环境配置内容
在 settings 文件目录下,创建两个 py 文件,分别为 dev.py 和 prod.py,分别作为 开发时使用的配置文件 和 上线时使用的配置文件。
将默认的配置文件 settings.py 中内容拷贝至 dev.py中, 然后把默认的配置文件删掉,即:
- 拷贝 settings.py 到 dev.py
- 删除 settings.py
3. 指定开发环境配置文件
上面的内容修改完成之后,如果出现如下错误:
还需要在 manage.py 文件中进行修改:
4. 启动当前程序
配置完成后, 我们现在可以启动当前项目:
出现的错误如何解决呢:
我们现在再次运行项目:
1.3 配置模板文件夹路径
dev.py 文件中修改如下选项
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 添加这一行的配置信息, 把 templates的绝对路径导入到 [] 中:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
1.4 配置MySQL数据库
1. 新建 MySQL 数据库:meiduo_mall
create database meiduo_mall charset=utf8;
2. 新建 MySQL 用户
create user itcast identified by '123456';
3. 授权 itcast 用户访问 meiduo_mall 数据库
grant all on meiduo_mall.* to 'itcast'@'%';
4. 授权结束后刷新特权
flush privileges;
5. 配置 MySQL 数据库
在配置文件 dev.py 中修改配置MySQL数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'root', # 数据库用户名
'PASSWORD': '123456', # 数据库用户密码
'NAME': 'meiduo_mall' # 数据库名字
},
}
发现错误:虚拟环境中没有安装MySQL数据库驱动
6. 安装mysqlclient==1.4.6: MySQL 数据库的客户端驱动
# 进入虚拟环境
pip install mysqlclient==1.4.6 -i https://pypi.tuna.tsinghua.edu.cn/simple/
7. 解决mysqlclient安装出错的问题
- 更换ubuntu中默认的源为国内的源:提升软件下载速度
- 更新 apt-get 的源和升级
- 安装 libmysqlclient-dev :因为mysqlclient依赖这个软件
- 虚拟环境中安装 mysqlclient==1.4.6
- 测试:重启Django程序
7.1 更换ubuntu中默认的源为国内的源
# 第一步:备份 /etc/apt/sources.list
# 第二步:在/etc/apt/sources.list中添加以下阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 备份
$ cp /etc/apt/sources.list /etc/apt/sources.list.bak# 添加阿里源
$ sudo vim /etc/apt/sources.list
7.2 更新 apt-get 的源和升级,其中 upgrade 会执行很久,需要耐心等待
$ sudo apt-get update
$ sudo apt-get upgrade
7.3 安装 libmysqlclient-dev :
$ sudo apt-get install libmysqlclient-dev
7.4 虚拟环境中安装 mysqlclient==1.4.6:
7.5 测试:重启Django程序
1.5 配置Redis数据库
1. 安装 django-redis 扩展包
$ pip install django-redis
2. 配置 Redis 数据库
在 dev.py 中配置如下信息:
CACHES = {
"default": { # 默认存储信息: 存到 0 号库
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
"session": { # session 信息: 存到 1 号库
"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.6 配置工程日志
在项目的同名目录下创建一个名为 logs 的 Directory ,并在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(BASE_DIR, 'logs/meiduo.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': { # 日志器
'django': { # 定义了一个名为django的日志器
'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志
'propagate': True, # 是否继续传递日志信息
'level': 'INFO', # 日志器接收的最低日志级别
},
}
}
日志记录器的使用
# 1. 导入:在需要使用的位置导入
import logging
# 2. 创建日志记录器:导入后创建日志器才能使用
logger = logging.getLogger('django')
# 3. 根据不同情况,输出日志
logger.debug('调试信息')
logger.info('打印信息')
logger.error('错误信息')
1.7 Git管理日志文件
在logs下新建名为 .gitkeep 的python file