• 实验楼流程


    实验楼

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

    图片详解

  • 相关阅读:
    JMM内存模型
    APUE习题8.7
    整型和字符数组之间的转换(略带进制的转化)
    数据结构学习——shell排序的C语言实现
    Unix环境高级编程学习笔记——fcntl
    Unix环境高级编程学习笔记——dup
    链表
    计算机数值表示
    整数位运算相关操作
    win和linux下控制台界面中停顿X秒的方式
  • 原文地址:https://www.cnblogs.com/wyx-zy/p/13904000.html
Copyright © 2020-2023  润新知