其他分享
首页 > 其他分享> > day74

day74

作者:互联网

工作环境

1 公司配电脑:
-windows笔记本
  -有些公司不让上外网
       -只能上一部分
       -淘宝,京东
   -台式机
  -公司用的框架不支持windows
       -虚拟机,直接装linux操作系统
       -远程连接linux开发(后面讲)
   -mac
  -mac不适应
2 用自己的电脑
-补贴
   
3 开一些账号

 

上节回顾

1 jwt:json web token,前后端登录认证的方式,签发和认证
2 签发和认证
-源码
   
3 基于自定义的用户表签发和认证token

4 RBAC:基于角色的访问控制
-用户
   -角色
   -权限
   -用户和角色
   -角色和权限
   -用户和权限

5 django:auth+admin,具有了rbac权限控制的后台管理系统
6 simple-ui的使用,对admin的美化
7 集成echars

 

今日内容

1 drf 大回顾

1 drf入门规范
-前端后开发模式
   -API接口
   -postman使用
  -做接口测试
   -restful规范:10条
   -djangorestframework
-APIVIew的执行流程
   -Request对象的源码

2 序列化
-序列化和反序列化
  -instance,many=True,ser.data
       -data,ser.is_valid--->ser.save(updata,create)
-Serializer
  -写一个个字段
       -字段类型
       -字段属性
       -重写update,create(跟表模型没有直接联系)
       -局部钩子,全局钩子
       
   -ModelSerializer
  -重写字段
       -SerializerMethodField+配套一个函数get_字段名
  -class Meta:
           表模型
           序列化和反序列化的字段
       -局部和全局钩子
       -重写update和create
3 请求与响应
-Request类
   -解析的编码:局部和全局配置
   
   -Response类:data,status,header
  response.data--->
   -响应的格式:局部和全局配置
4 视图
-两个视图基类
  -APIView
      -认证类
           -权限类
       -GenericAPIView
      -两个类属性
           -获取单个
           -获取所有
           -获取序列化的类
   -5个视图扩展类
  -5个接口:list,retrieve,destory,update,create
   -9个视图子类
  -写两个类属性
   -视图集
       -ViewSetMixin:重写了as_view,路由配置变了,自动生成路由
       -ViewSet:ViewSetMixin+APIView
       GenericViewSet:ViewSetMixin+GenericAPIView
       ModelViewSet:5个视图扩展类+ViewSetMixin+GenericAPIView
       ReadOnlyModelViewSet:
       
5 路由
-自动生成路由:继承自ViewSetMixin的视图类
   -action装饰器
  -在视图类对象中存在:self.action
6 认证,权限,频率
-源码:为什么认证类,配置到视图类中就会执行
   -写一个类,继承基类,重写某个方法,全局配置局部配置
   
7 过滤,排序(查询所有)
-继承了GenericAPIView+ListModelMixin
   -在视图类属性中配置 filter_backends=[内置,第三方,自己写的]

   -自定义过滤类,继承:BaseFilterBackend,重写filter_queryset
8 分页
-三种分页方式
   -配置在继承了GenericAPIView+ListModelMixin的视图类的pagination_class类属性
   
   -继承APIView,需要自己写

9 全局异常处理
-写一个函数
   -配置文件配置
   
   
10 自动生成接口文档
-接口文档有规范
   -yapi:如何使用
   
11 jwt
12 simple-ui的使用
13 rbac


14

 

## 频率源码
# SimpleRateThrottle--->allow_request--->self.rate = self.get_rate()


# allow_request
   def allow_request(self, request, view):
       # self.rate配置文件中配的 '3/m'
       if self.rate is None:
           return True

       # get_cache_key返回谁,就以谁做限制
       # ip地址
       self.key = self.get_cache_key(request, view)
       if self.key is None:
           return True

       #self.history 是当次访问者ip对应的时间列表
       # 从缓存中通过key(ip)值,取出时间列表
       self.history = self.cache.get(self.key, [])
       # 获取当前时间
       self.now = self.timer()
       # 列表中只存放咱们规定时间内的实际
       while self.history and self.history[-1] <= self.now - self.duration:
           self.history.pop()
       # 时间列表的长度,如果大于咱们配置的,就不允许访问了
       if len(self.history) >= self.num_requests:
           return self.throttle_failure()
       # 把当前时间插入到时间列表,返回True
       return self.throttle_success()

 

2 前端介绍

1.HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览器中查看

2.Ajax的出现 -> 后台发送异步请求,Render+Ajax混合

3.单用Ajax(加载数据,DOM渲染页面):前后端分离的雏形

4.Angular框架的出现(1个JS框架):出现了“前端工程化”的概念(前端也是1个工程、1个项目)

5.React、Vue框架:当下最火的2个前端框架(Vue:国人喜欢用,React:外国人喜欢用)

6.移动开发(Android+IOS) + Web(Web+微信小程序+支付宝小程序) + 桌面开发(Windows桌面):前端 -> 大前端

7.一套代码在各个平台运行(大前端):谷歌Flutter(Dart语言:和Java很像)可以运行在IOS、Android、PC端

8.在Vue框架的基础性上 uni-app:一套编码 编到10个平台

9.在不久的将来 ,前端框架可能会一统天下

 

3 Vue介绍

# js的框架
# 构建用户界面的渐进式框架

# MVVM介绍   mvc   mvvm   mvp
-Model-View-ViewModel
   -Model :vue对象的data属性里面的数据,这里的数据要显示到页面中
   -View :vue中数据要显示的HTML页面,在vue中,也称之为“视图模板” (HTML+CSS)
   -ViewModel:vue中编写代码时的vm对象,它是vue.js的核心,负责连接 View 和 Model数据的中转,保证视图和数据的一致性,所以前面代码中,data里面的数据被显示中p标签中就是vm对象自动完成的(双向数据绑定:JS中变量变了,HTML中数据也跟着改变
   
   
# 组件化开发、单页面开发

   

 

4 第一个hello world

# 关于编辑器的选择
-Andriostadio:谷歌公司出钱买了jebrains版权+ADT--》
-webstorm:jebrains公司出的  pycharm,goland,idea,phpstorm
   -vscode:微软 免费
   -sublime text:收费
   -咱们使用pycharm,装一个插件开发vue
   
   
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <script src="./js/vue.js"></script>
</head>
<body>

<div id="app">

   <h1>{{name}}</h1>

</div>


</body>
<script>
   var vm=new Vue({
       el:'#app',  //id为app的div,被vue托管了
       data:{
           name:'hello world'
      }
  })



</script>
</html>

 

作业

#1  (所有人)在django中间件中写,取出访问者ip和访问者客户端类型(User-Agent)---》存入库
# (部分人)把访问者类型转成---》ie,chrom,Firefox ,echars饼形图画出来

# 2 考试:密码加密(md5,makepassword)

 

标签:vue,self,视图,day74,序列化,data,前端
来源: https://www.cnblogs.com/Gnomeshghy/p/15253320.html