后端配置
python虚拟环境
视频中使用的是pip来进行包管理,但是在conda和pip都是用了一遍的情况下,个人觉得使用conda来进行包管理更方便,而且在conda中也能够使用pip,因此我使用pip来进行包管理:
创建luffy虚拟环境:
conda create -n luffy python=3.6
进入虚拟环境:
conda activate luffy
- 为什么要使用虚拟环境呢?
虚拟环境存在的意义只是为了将项目独立,使用虚拟环境的优势就是,该项目使用的第三方工具都需要在虚拟环境中使用pip/conda命令安装,并且安装好的工具不影响系统已有的工具,同时系统中的其他项目也无法调用虚拟环境中安装的工具
当我们在完成项目之后,可以使用如下命令,将项目依赖的python第三方包写进requirements.txt中:
pip freeze > requirements.txt
在部署的时候,使用下面的命令就可以安装可开发时使用的相同版本的包,非常好用:
pip install -r requirements.txt
外部依赖
- 注册支付宝开发者账号 https://open.alipay.com/
- 注册阿里云服务器,我这就不了,就使用实验室的服务器
- 注册容联云短信接口平台
- 注册保利威视频服务平台
- 注册gitee账号,我使用git
- 如果有条件,可以申请一个域名进行备案(ICP备案和公安部备案),如果没有的话,可以注册natapp(内网穿透)
- 什么是内网穿透?
公网是不能够直接访问内网机器的,我们使其能的过程就叫内网穿透。具体的解释见知乎.
依赖包安装
pip install django
pip install djangorestframework
pip install Pymysql
pip install Pillow
pip install django-redis
Pillow模块用于处理图片、redis用于数据缓存
如果安装过程中有卡顿,因为有墙,我们可以使用-i参数来设置我们的源,例如:
pip install django -i https://pypi.douban.com/simple/
创建后端项目
创建自己想要的工程文件夹,使用django-admin来新建后端目录结构,具体命令如下:
mkdir luffy
cd luffy
django-admin startproject luffyapi
命令生成的目录结构如下:
- manage.py:我们称之为项目的脚手架,是终端运行的脚本,通过它来启动、管理项目
- setting.py:是项目的整体配置文件
- urls.py:是项目的url配置文件
- wsgi.py:是项目与WSGI(Web服务器网关接口 Python Web Server Gateway Interface)兼容的web服务器入口
使用下面的命令,便可以运行django项目了,默认端口为8000,见到下面的图,表示成功
python manage.py runserver
目录结构调整
项目的整体目录如下图,后续开发过程中按照目录的作用存放代码
版本管理
包括svn、gitee、git
svn是集中式版本管理工具
git是分布式版本管理工具
gitee是中文版本的git
日志配置
从django文档中复制日志配置例子。配置的项目主要是日志的格式、日志的过滤方法、日志的处理方式。setting中日志的配置代码如下:
#日志配置
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
#日志的格式
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {lineno:d} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
#日志的过滤信息
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
#日志的处理方式
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(os.path.dirname(BASE_DIR), 'logs/luffy.log'),
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose',
},
},
#日志对象
'loggers': {
'django': {
'handlers': ['console', 'file'],
'propagate': True,
},
}
}
异常处理
最主要是续写rest_framework.views.exception_handler方法,自定义错误处理方法到utils.exceptions中,然后在dev.py中加入rest_framework配置申明
数据库配置
小型关系型数据库sqlite3
中小型关系型数据库mysql
我想用mysql,所以按照mac版mysql安装教程,成功安装。用下面的命令创建数据库:
mysql -u root -p
//显示所有数据库
show databases;
//创建luffy数据库,必须指定编码
create database luffy charset=utf8mb4;
use luffy;
//创建一个用户,名为luffy_user,密码为luffy
create user luffy_user identified by 'luffy';
//授权,luffy_user只能查看luffy数据库,保证数据库安全
grant all privileges on luffy.* to 'luffy_user'@'%';
//刷新权限
flush privileges;
不过要想在命令行中使用mysql,需要在~/.bash_profile中将msql的路径写进去:
export PATH=${PATH}:/usr/local/mysql/bin
数据库本身配置好之后,还要去django中配置数据库;在主目录的__init__.py中申明使用mysql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'luffy_user',
'PASSWORD': 'luffy',
'NAME': 'luffy',
}
}
前端配置
创建前端项目目录
首先得安装vue,根据mac配置vue教程安装,成功
使用下面的命令创建vue项目:
//webpack是一个独立工具,提供编码转换、前端在运行过程中的工具
vue init webpack luffy_pc
cd luffy_pc
npm run dev
酱紫,前端项目就运行起来了
初始化前端项目
在vue项目中,想要一个页面能够展示出来,他的流程为:
- 初始化路由对象,也就是router/index.js中的路由配置
- 在mian.js中,把router/index.js中export的路由注册到vue中去,这样vue才能看到我们设置的路由
- 在App.vue中添加路由,也就是添加
- 在components中创建我们需要的组件,并在router/index.js中配置访问组件的路径
至此,我们就能够按照路径访问我们想要的页面了。第1、2、3步通常只需要执行一次,后续添加组件只需要执行第4步的内容即可。
前端初始化全局变量和全局方法
main.js中存放的是全局变量和方法,引入额外的setting、引入element-ui都写进main.js中,这样全局就能看见。
我碰到一个极其恶心的问题,就是安装element-ui的时候,首先是版本出现了问题,看了一下npm的uninstall之类的用法,重新装了一个兼容element-ui的vue版本,说vue3还不支持element-ui。解决完上面的问题之后又出现了找不到element-ui里面的文件问题!!!找了好久,终于找到一个能正确解决的方法了。看了这么多方法,都是一个路子,而且里面描述的文字都是一个样,恶心啊,恶心。你说你看了别人的博文,你复制过去干嘛?关键的是人家的方法还有问题!恶心啊,恶心。能够正确解决的方案链接是这个https://blog.csdn.net/bdmh/article/details/115124619
全局样式
App.vue中存放的是全局样式