实验楼流程
实验楼
1、基础课
-
2、ubuntu开
发环境初始化- 1、安装VMware 15
- 2、安装Ubuntu 18.04
- 3、Ubuntu设置静态IP
- 4、Ubuntu root用户登录
- 5、Ubuntu安装Pycharm并激活
- 6、安装mysql
- 7、安装redis
- 8、安装使用virtualenvwrapper
-
3、Linux基础
- 1、linux常用命令
- 2、ubuntu开启sshd服务
- 3、ubuntu安装软件方法
day02
-
1、Django基础
- 1、web项目工作流程
- 2、Django介绍
- 3、Django设计模式(MVC/MTV)
- 4、虚拟环境
- 5、post、put、delete 获取数据
- 6、响应
-
2、初始化项目结构
- 1、初始化项目结构
- 2、创建Django项目
- 3、创建User模型
- 4.重写Django默认认证用户模型
-
3、Django路径问题
- 1、绝对路径
- 2、导包路径
- 3、模块路径(user.User)
-
4、ModelViewSet
+ModelSerialzers-
1、ModelViewSet
-
1、DRF初始化
- 1、安装DjangoRestFramework
- 2、settings中注册rest_framework
- 3、settings中配置rest_framework
-
2、ModelViewSet用法
- 1、认证
- 2、权限
- 3、限流
- 4、分页
- 5、过滤
- 6、排序
- 7、版本
- 8、序列化
-
4、接口测试
- 1、认证
- 2、权限
- 3、限流
- 4、分页
- 5、过滤
- 6、序列化
-
-
2、ModelSerializer
-
1、数据校验
- 1、独立校验器(validators=[address_validate])
- 2、单一字段验证(validate_字段名)
- 3、多字段校验(validate)
-
2、序列化器
- 1、model
- 2、fields
- 3、exclude
- 4、read_only_fields
-
-
day03(加)
-
1、APIview+serializers
-
1、APIview
-
1、APIView用法
- 1、认证
- 2、权限
- 3、限流
- 4、分页
- 5、过滤
- 6、排序
- 7、版本
- 8、序列化
-
2、测试
-
-
2、serializer
-
1、数据校验
- 1、独立校验器(validators=[address_validate])
- 2、单一字段验证(validate_字段名)
- 3、多字段校验(validate)
-
2、序列化器
-
1、普通字段序列化
- name = serializers.CharField(min_length=3,max_length=20)
-
2、一对多字段序列化
- ut = serializers.CharField(source='ut.type_name')
-
3、多对多字段序列化
- gp = serializers.SerializerMethodField(read_only=True)
-
4、自定义字段
- xxx = serializers.CharField(source='name',required=False)
-
-
-
-
2、APIView和ModelViewSet使用场景
-
1、ModelViewSet
- 1、主要应用于数据接口
- 2、对数据库基本增删改查
- 3、在视图函数中没有很多业务逻辑要处理的
-
2、APIView
- 1、APIView主要应用于业务接口
- 2、支付宝支付、三方登录、七牛云上传
-
-
3、RESTful接口规范
-
1、什么是Restful规范
-
2、RESTful API具体规范
-
1、面向资源编程
- 1、路径,视网络上任何东西都是资源,均使用名词表示
- 2、https://api.example.com/v1/zoos
-
2、请求方法规范
- 1、get
- 2、post
- 3、put
- 4、delete
-
3、状态码
-
1、2xx(请求成功)
- 1、200 请求成功
- 2、201创建成功
-
2、3xx(重定向)
- 1、301永久重定向
- 2、临时重定向
-
3、4xx(客户端错误)
- 1、401 表示用户没有权限(令牌、用户名、密码错误)
- 2、403 Forbidden表示用户得到授权但是访问是被禁止的
- 3、404 NOT FOUND
-
4、5xx(服务端错误)
- 1、500服务器内部错误
- 2、501服务器不支持请求的功能,无法完成请求
-
-
-
-
4、Model各种操作
-
1、创建表
- 1、Meta属性
- 2、常用字段
- 3、字段参数
-
2、一对多
-
3、多对多
-
4、一大波model操作
-
5、F和Q查询
-
6、aggregate和annotate聚合函数
-
day04
-
1、vue基础
-
1、初始化Vue项目
- 1、vue init webpack deaxios
-
2、封装axios
-
1、http/index.js
-
1、实例化axios对象
- 1、请求地址(baseURL)
- 2、请求超时时间(timeout)
- 3、请求头(header)
-
2、添加拦截器
- 1、请求拦截器
- 2、响应拦截器
-
3、封装get/post/put/delete请求
-
-
2、http/apis.js
- 1、import { get, post,put,delete } from './index'
- 2、export const login = (params, headers) => post("/user/login/", params, headers)
-
-
-
2、django设置跨
域并开发测试接口-
1、Django跨域原理
-
2、DJango CORS设置
-
3、登录测试接口
- 1、创建Login.vue页面
- 2、Login.vue中导入并发送axios请求
-
-
3、使用axios
测试登录功能-
1、页面
- 1、创建一个Login.vue页面
- 2、写Vue端路由
-
2、axios
发送请求- 1、src\http\apis.js配置后端请求
- 2、Login.vue页面导入模块并测试
-
-
4、组件
-
1、组件定义
- 1、独立的,完整的(包含html,css,js等),可以直接拿来用的
-
2、父组件显示子组件内容
-
1、导入:
- import Child from '@/views/demo/Child'
-
2、注册:
- components:
-
3、引用:
-
-
2、父组件向子组件传值
- 1、父组件(:data='msg')
- 2、子组件(props: ['data'])
-
3、子组件向父组件传值
- 1、父组件(@changeMsg='change')
- 2、子组件(this.$emit('changeMsg', '子组件信息...'))
-
day05
-
1、model建表规范
-
2、model查询
-
3、原生SQL
2、项目课
day01
-
1、Xmind架构图
-
1、前端
- 1、前台页面(用户使用页面)
- 2、后台管理系统(管理员使用页面)
-
2、后端
- 1、后端功能分析
- 2、运维架构
- 3、工程目录结构
-
-
2、表关系图
- 1、用户模块
- 2、课程模块
- 3、评论模块
- 4、商品模块
-
3、数据字典
-
4、接口文档规范
day02
-
1、初始化项目结构回顾
-
2、ModelViewSet+ModelSerializer回顾
-
3、JWT原理
-
1、cookie使用和优缺点
- 1、cookie原理
- 2、session使用原理
- 3、session使用缺点
- 4、常用解决session方法
-
2、JWT介绍
-
1、jwt原理
-
2、jwt数据结构
- 1、jwt头
- 2、载荷
- 3、签名
-
3、jwt核心
-
4、jwt特点分析
- 1、服务器端需要存储token
- 2、服务器端相当于一把锁,这把锁能打开token是真的,否则token就是假的
-
-
-
4、JWT安装与配置
-
1、安装JWT
- 1、pip install djangorestframework-jwt==1.11.0
-
2、settings配置
- 1、配置jwt载荷中的有效期设置
- 2、REST_FRAMEWORK中配置使用JWT认证
-
3、syl/urls.py注册路由
- 1、obtain_jwt_token登录
- 2、refresh_jwt_token刷新token
-
-
5、编写注册接口
-
1、编写注册接口
- 1、username,password,email
-
2、重写Django认证
- 1、settings中指定:AUTHENTICATION_BACKENDS = ['user.utils.EmailAuthBackend']
- 2、EmailAuthBackend类的书写
-
3、注册登录接口测试
-
day03
-
1、图片验证码接口
-
1、django缓存设置
-
1、安装 pip install django-redis==4.12.1
-
2、settings中配置CACHES
- uuid为Key,验证码为Value存入Redis
-
-
2、新建verifications应用
- 1、图片验证
- 2、短信验证
- 3、邮箱验证
-
3、图片验证码captcha使用
-
4、动态生成图片验证码接口
-
5、接口测试
-
-
2、vue图片验证码
- 1、动态生成uuid
- 2、以uuid为Key发送到后端换取图片验证码
-
3、短信验证接口
-
1、容联云注册账号
-
2、测试容联云发送短信
-
3、将容联云发送短信功能融入项目
- 1、检查前端传过来的参数
- 2、检查图片验证码是否合法
- 3、发送并存储到redis,防止短时间内多次发送
-
4、前端调试短信发送功能
-
5、pipline优化redis命令执行
-
-
4、redis的pipeline
- 1、pipeline原理
- 2、测试pipeline性能
day04
-
1、celery原理与组件
-
1、celery介绍
-
2、celery组件
- 1、生产者
- 2、broker存放任务(redis/rabbitMQ)
- 3、消费者(worker)
- 4、backend存放结果(redis/rabbitMQ/Mysql)
- 5、beat(调度器)
-
-
2、celery配置与基本使用
- 1、安装: pip install celery
- 2、celery/main.py配置
-
3、celery发送短信接口
- 1、在celery/main.py中写一个发送短信的函数
- 2、verifications应用的视图函数中调用异步发送短信
-
4、vue发送短信逻辑
-
5、检查用户名是否使用接口
-
6、vue检查用户名是否使用
-
7、后端注册接口完善
- 1、username、phone、password、code短信验证码
day05
-
1、微博三方登录原理讲解
- 1、微博三方登录流程
- 2、三方用户绑定流程
- 3、oauth认证原理
-
2、微博账号注册
-
3、生成微博授权URL接口
-
4、vue后端微博授权URL
-
5、微博回调接口
-
6、vue微博回调空页面
-
7、绑定微博用户接口
-
8、vue绑定用户页面
day06
-
1、课程模块表结构分析
- 类别表
- 标签表
- 课程表
- 章节表
- 关注表
- 我的课程
-
2、创建课程app
-
3、增加抽象基类Base
-
4、设计课程五张表
- 1、课程表
- 2、分类表
- 3、标签表
- 4、章表
- 5、节表
-
5、增加media文件配置
-
1、syl/settings.py中配置文件路径
- 1、MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
- 1、MEDIA_URL = '/media/'
-
2、syl/urls.py添加静态资源路径
-
3、在浏览器中测试访问图片
-
-
6、课程主页面三个接口
-
1、获取课程的接口
- 加上课程关注信息
-
2、获取分类的接口
-
3、获取标签接口
-
-
7、课程关注
- 1、用户添加课程关注接口
-
8、章节页面接口
- 1、获取具体课程的章节信息接口
-
9、播放接口
- 1、获取具体课程的视频播放地址接口(节表)
day07
-
1、七牛云注册于基本使用
-
2、使用七牛云进行视频点播原理
- 1、django后端只负责生成token
- 2、vue端获取token上传视频到七牛云
- 3、vue端把七牛云返回的视频播放地址发送给django
-
3、后端生成七牛云token接口
-
4、七牛云上传JS方法实现
-
5、七牛云上传django端实现
-
6、上传视频成功后把七牛云返回的视频地址信息存储到mysql
-
7、视频防盗链(待完成)
-
8、课程评论
- 1、添加评论接口
- 2、获取评论接口
day08
-
1、商品模块表结构分析
-
2、创建商品app
-
3、通过课程查询对应的商品接口
-
4、支付宝支付原理
-
5、创建订单并生成支付链接
-
6、订单支付完成后回调接口
- 1、修改订单状态为“已支付”
- 2、存储支付宝返回的支付单号
day09
-
1、RBAC角色权限管理
-
2、重写django权限模块
-
3、课程播放接口权限限制
- 1、免费课程
- 2、会员免费课程
- 3、收费课程
-
4、路径模块两张表设计
-
5、路径页面接口开发
- 1、获取所有路径接口
- 2、获取指定路径下的所有阶段和课程信息的接口
day10
-
1、倒排索引原理
-
1、搜索引擎原理
- 1、搜索引擎中存储的是倒排索引,就是分好的词,和词语文章的关联
-
2、创建倒排索引原理
- 1、django中提供的是结构化数据
- 2、haystack把结构化转非结构化
- 3、搜索引擎把非结构化转分词
-
-
2、课程全文检索接口
-
1、haystack介绍
- 1、安装
- 2、原理介绍
-
2、haystack配置使用
-
1、syl/settings.py配置
- 1、注册haystack
- 2、配置template
- 3、配置haystack
-
2、在应用下创建索引文件
-
3、指定索引模板路径
-
4、修改为jieba分词分析器
-
5、课程全文检索视图函数
-
6、syl/urls.py添加路由
-
7、命令构建倒排索引
- python manage.py rebuild_index
-
-
3、全文检索接口测试
-
-
3、docker安装与基本使用
- 1、docker安装
- 2、docker部署ES
-
4、使用ES替代whoosh,全文检索
day11
-
1、wsgi_uwsgi_niginx理论部分
-
1、一些重要概念
- 1、web容器
- 2、WSGI
- 3、uWSGI
- 4、Nginx
- 5、Django
-
2、nginx+Uwsgi+Nginx部署
- 1、方案特点分析
- 2、Django+Uwsgi方案特点
- 3、nginx和uWSGI
-
-
2、Django+uWSGI+nginx生产环境部署
- 1、django的settings配置
- 2、安装uwsgi配置uWSGI
- 3、安装配置nginx
- 4、uwsgi和nginx启动、关闭、查看日志
-
3、docker+nginx反向代理部署项目
day12
- 1、mysql主从搭建
- 2、mysql主从项目实战
day13
- 1、项目回顾
图片详解