实验楼流程

实验楼

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、面向资源编程

      • 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、srchttpapis.js配置后端请求
      • 2、Login.vue页面导入模块并测试
  • 4、组件

    • 1、组件定义

      • 1、独立的,完整的(包含html,css,js等),可以直接拿来用的
    • 2、父组件显示子组件内容

      • 1、导入:

        • import Child from '@/views/demo/Child'
      • 2、注册:

        • components: { Child, }
      • 3、引用:

    • 2、父组件向子组件传值

      • 1、父组件(:data='msg')
      • 2、子组件(props: ['data'])
    • 3、子组件向父组件传值

      • 1、父组件(@changeMsg='change')
      • 2、子组件(this.$emit('changeMsg', '子组件信息...'))

day05

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')
    • 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、项目回顾

图片详解

原文地址:https://www.cnblogs.com/wyx-zy/p/13904000.html