day74
2021/9/10 23:36:53
本文主要是介绍day74,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
工作环境
1 公司配电脑: -windows笔记本 -有些公司不让上外网 -只能上一部分 -淘宝,京东 -台式机 -公司用的框架不支持windows -虚拟机,直接装linux操作系统 -远程连接linux开发(后面讲) -mac -mac不适应 用自己的电脑 -补贴 开一些账号
上节回顾
1 jwt:json web token,前后端登录认证的方式,签发和认证 签发和认证 -源码 基于自定义的用户表签发和认证token RBAC:基于角色的访问控制 -用户 -角色 -权限 -用户和角色 -角色和权限 -用户和权限 django:auth+admin,具有了rbac权限控制的后台管理系统 simple-ui的使用,对admin的美化 集成echars
今日内容
1 drf 大回顾
1 drf入门规范 -前端后开发模式 -API接口 -postman使用 -做接口测试 -restful规范:10条 -djangorestframework -APIVIew的执行流程 -Request对象的源码 序列化 -序列化和反序列化 -instance,many=True,ser.data -data,ser.is_valid--->ser.save(updata,create) -Serializer -写一个个字段 -字段类型 -字段属性 -重写update,create(跟表模型没有直接联系) -局部钩子,全局钩子 -ModelSerializer -重写字段 -SerializerMethodField+配套一个函数get_字段名 -class Meta: 表模型 序列化和反序列化的字段 -局部和全局钩子 -重写update和create 请求与响应 -Request类 -解析的编码:局部和全局配置 -Response类:data,status,header response.data---> -响应的格式:局部和全局配置 视图 -两个视图基类 -APIView -认证类 -权限类 -GenericAPIView -两个类属性 -获取单个 -获取所有 -获取序列化的类 -5个视图扩展类 -5个接口:list,retrieve,destory,update,create -9个视图子类 -写两个类属性 -视图集 -ViewSetMixin:重写了as_view,路由配置变了,自动生成路由 -ViewSet:ViewSetMixin+APIView GenericViewSet:ViewSetMixin+GenericAPIView ModelViewSet:5个视图扩展类+ViewSetMixin+GenericAPIView ReadOnlyModelViewSet: 路由 -自动生成路由:继承自ViewSetMixin的视图类 -action装饰器 -在视图类对象中存在:self.action 认证,权限,频率 -源码:为什么认证类,配置到视图类中就会执行 -写一个类,继承基类,重写某个方法,全局配置局部配置 过滤,排序(查询所有) -继承了GenericAPIView+ListModelMixin -在视图类属性中配置 filter_backends=[内置,第三方,自己写的] -自定义过滤类,继承:BaseFilterBackend,重写filter_queryset 分页 -三种分页方式 -配置在继承了GenericAPIView+ListModelMixin的视图类的pagination_class类属性 -继承APIView,需要自己写 全局异常处理 -写一个函数 -配置文件配置 自动生成接口文档 -接口文档有规范 -yapi:如何使用 jwt simple-ui的使用 rbac
## 频率源码 # 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)
这篇关于day74的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07转型传统行业避坑指南!
- 2025-01-07百万架构师第九课:源码分析:Spring 源码分析:Spring5源码分析-预习资料|JavaGuide
- 2025-01-07为你的程序精选的4个优质支付API
- 2025-01-06责任分配矩阵在项目管理中的作用:结合工具提升团队生产力
- 2025-01-06板栗看板:优化项目管理的实用策略,助你轻松完成任务
- 2025-01-06电商小白怎么选取合适的工具?一站式工具指南来啦
- 2025-01-06企业如何避免春节期间的项目断层?四大方法教给你!
- 2025-01-06初创团队如何在动态环境下利用看板工具快速迭代
- 2025-01-06企业内部管理如何实现高效?四大策略教会你
- 2025-01-06给 Postgres 写一个向量插件 - 向量类型