Java教程

day74

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!