vue,前端发展史,vue介绍,vue插值语法
内容回顾
jwt 源码分析
签发:
登录》ObtainJSONWebToken--->post》serializer.is_valid()>走了校验》正常登录逻辑可以拿到序列化类的validate中写》authenticate(username=xx,password=xx)--->通过user获得payload》通过payload》token》返回给前端
认证:BaseJSONWebTokenAuthentication(父类)---》authenticate
自定义表:
签发:
自己校验用户名密码,调用jwt生成荷载》然后再使用jwt的加密方法生成token,最后再返回给前端
认证:自定义认证类,在认证类中的authenticate中拿到前端传来的token然后使用jwt校验token函数去校验,校验成功则返回user对象,和token
权限:
acl:访问控制列表,用户直接对应权限,有权限就通过没权限就不通过
rbac:基于角色的访问控制,用户对应角色,角色对应权限,用户也可以直接对应权限。
django的auth+admin
django的admin自带rabc控制权限
simpleui
这个就是之前,前后端混合的时候用的要与admin使用,快速开发一套后台系统,这个相当于美化django-admin
drf回顾
drf 入门规范
前后端分离模式
前后端混合:python使用模板语法,对要返回的页面进行填值
postman:接口测试工具
restful规范
1.使用https协议(http+tls),保证数据传输安全
2.接口中带api标识
3.接口中带版本标识
4.接口地址即资源,尽量使用名词,特殊情况可以使用动词,例如登录接口
5.接口中带过滤条件
6.操作资源的方式根据请求动作做操作
7.响应数据中带错误信息
8.响应数据中带有错误码:这路错误码有两套,一套是http的1.x到5.x一套是公司自定义的
9.响应数据带链接
10.响应数据应该遵守以下规范:
1.查所有,返回查询的所有对象
2.查单个,返回查询的单个对象
3.新增一个,返回新增的对象
4.修改一个,返回修改的对象
5.删除一个,返回空数据
序列化类(重点)
Serializer:字段类,字段参数,局部钩子,全局钩子
ModelSerializer: 局部钩子,全局钩子,class Meta:里面模型类,字段,model,fields,extra_kwargs
定制返回格式:一种是在序列化类中写要是使用MethodSerializer,一种是在模型表中写保存的时候many=True是在序列化多条的时候加的
重写字段,优先走重写的
反序列化校验原源码》类似于forms校验
请求和响应
请求类源码:新的request
请求能解析的编码格式:form-data,urlencode,json
响应对象源码(reponse):data,headers,status
响应格式:json格式,浏览器页面格式
视图组件(重要)
两个视图基类:APIView,GenericAPIView
5个视图扩展类:create,update,list,retrieve,destory
9个视图子类:五个子类,然后两个查询合到一起,剩余两两结合,三个结合
视图集:ModelViewSet,ReadOnlyModelViewSet,ViewSetMixin,ViewSet,GenericViewSet
路由写法
ViewSetMixin
映射{‘get’:’方法名’}
自动生成SimpleRouter注册
action装饰器
认证频率权限(重点)
认证。频率,权限,依次执行。
过滤,排序,分页
过滤:查所有才有过滤内置,第三方(django-filter),自定义,自己直接写
排序:内置
分页:三个分页类:pageNum,Limit,course
全局异常
使用我们自己写的异常函数进行操作
接口文档
公司一般都是要写接口文档的
jwt(重点)
base64编码,解码
jwt原理,头部信息,荷载,加密后生成token,然后三个用点分隔拼接在一起
django中快速使用,基于auth的user表进行快速签发
自定义签发认证,自己洗签发,自己写认证
alc,rbac权限
alc基于访问列表的权限认证
rbac:基于角色的权限认证
simpleui
美化admin后台管理
内容概要
前端发展史
1.HTML(5),CSS(3),javaScript(es5,es6):编写一个个页面》给后端(php,python,go,java)>后端嵌入模板语法》后端渲染完数据》返回给前端》在浏览器中查看
ECMAScript 6 ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准
最新:ES13》标准
js=ecma+bom+dom
sass,typescript
2.Ajax(异步javascript和xml)的出现》后台发送异步请求,Render+Ajax混合,
jqueyy $.ajax
原生 XMLHttpRequest
3.单用ajax(加载数据,dom渲染页面):前后端分离的雏形
4.Angular框架的出现(1个js框架):出现了前端工程化的概念(前端也是一个工程,一个项目)
5.react.vue框架:当下最火的2个框架(vue:国人喜欢用,react:外国喜欢用)
6.移动开发(android+ios)+web(web+微信小程序+支付宝小程序)+左面开发(windows左面):前端-》大前端
7.一套代码在各个平台运行(大前端):谷歌推的Flutter(Dart语言,和java很像)可以运行在ios,android,pc端
前端用flutter后端可以使用python写
8.在vue框架的基础上uni-app:一套编码 编到很多个平台
9.以后,前端框架可能会统一
vue介绍
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架
渐进式框架,意思是可以单某个页面的某一点使用vue,也可全部使用vue框架
vue js框架
M-V-VM架构思想 MVC MTV MVVC MVP移动端架构
M:Model 数据层 js的数据
V:View 视图层 html,css
VM:ViewModel vuew做出来的介于M和V之间的一层,以后不需要手动进行dom操作了
作用:以后页面变了,js变量就变,js变量变,页面就变
组件化开发,单页面开发
组件化开发,以后都是些出一个个组件,组件的组合成页面
单页面开发(单页面应用):sap:single-page-application,一个HTML页面
vue版本
1.x:使用的少
2.x普遍使用(蛮多)
3.x出了很久了,公司里新项目会选择
语法有差距,但是vue3完全兼容vue2
可以在vue3上写vue2,但是官方不建议
第一个hello word
引入方式1CND的方式
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
引入方式2下载后引入
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/vue.js"></script>
</head>
<body>
<div id="myvue">
{{name}}
</div>
</body>
<script>
var v = new Vue({
'el': '#myvue',
'data': {
'name': 'hello word'
}
})
</script>
</html>