drf 视图使用及源码分析】的更多相关文章

前言 drf视图的源码非常的绕,但是实现的功能却非常的神奇. 它能够帮你快速的解决ORM增删改查的重复代码,非常的方便好用. 下面是它源码中的一句话: class ViewSetMixin: """ This is the magic. """ 好了,屁话不多说,直接看看drf视图中的功能吧. 准备工作 此次的Django采用3版本,所以相对于1版本来说有一些差异. 模型表 下面是模型表: from django.db import models…
DRF框架    全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件.解析组件.响应组件 4.序列化组件(灵魂) 5.三大认证(重中之重):认证.权限(权限六表).频率 6.其他组件:过滤.筛选.排序.分页.路由 接口 接口:联系两个物质的媒介,完成信息交互 web程序中:联系前台页面与后台数据库的媒介 web接口组成: url:长得像返回数据的url链接 请求参数…
Django REST framework 简介 现在新一代web应用都开始采用前后端分离的方式来进行,淘汰了以前的服务器端渲染的方式.而实现前后端分离是通过Django REST framework(以下简称 DRF)来实现的.他是Django框架的一个扩展,提供了便捷的 REST API 开发框架.前后端分离方式有许多好处,比如: 1.1 可以前后端并行开发,提高开发效率 1.2 页面都在客户端进行渲染,提高了渲染速度,减小了服务器的压力 1.3 一套api提供给多个客户端使用,而且不限制客…
目录 复习 drf框架 全称:django-rest framework 知识点 接口 restful接口规范 基于restful规范的原生Django接口 主路由:url.py api组件的子路由:api/url.py 模型层:model.py 后台层:admin.py 数据库迁移 视图层:views.py Postman接口工具 代码 DRF框架 安装 drf框架规矩的封装风格 drf请求生命周期 请求模块:request对象 源码入口 源码分析 重点总结 渲染模块:浏览器和Postman请…
认证校验 认证校验是十分重要的,如用户如果不登陆就不能访问某些接口. 再比如用户不登陆就不能够对一个接口做哪些操作. drf中认证的写法流程如下: 1.写一个类,继承BaseAuthentication,并且覆写其authenticate方法 2.当认证通过后应该返回两个值,并且第一个值会传递给request.user这个属性中,第二个值将会传递给request.auth这个属性中 3.如果认证失败,则抛出异常APIException或者AuthenticationFailed,它会自动捕获并返…
首先写一个简单的drf接口 from rest_framework.views import APIView from rest_framework.response import Response # 基于drf写接口,cbv class DrfTest(APIView): def get(self, request,*args,**kwargs): print(type(request._request)) print(type(request)) print(request.POST) p…
1 CBV的源码分析 -Class Base View(基于类的视图) -Function Base View(基于函数的视图) -def as_view 类方法 -def view:类方法内部,闭包函数定义:内层函数包含对外部作用域的引用 -python中一切皆对象:函数也是对象 -hasattr(self, 'get')--判断self类中是不是有该(get)方法 -反射 setattr(self,get,get_all):相当于把get函数,变成了get_all -getattr(self…
 同样的增删改查操作,如果我们还像之前序列化组件那样做,代码重复率过多,所以我们用视图表示: 具体源码实现:首先定义一个视图类,然后根据mixin点进去有五个封装好的方法,这五个方法共有的属性就是都需要一个queryset和序列化,所以五个方法都需要写这两个东西. 前边是查询单条数据,后边的类是查询多条数据.要区分开. 其中对应关系 ListModelMixin----------get----------单条数据的查询 CreateModelMixin-------post---------增…
使用 from rest_framework.throttling import AnonRateThrottle from rest_framework.generics import ListAPIView,CreateAPIView,UpdateAPIView,DestroyAPIView,RetrieveAPIView from api.serializer.articleserializer import ArticleSerializer from api import models…
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分发--->视图(CBV或FBV)---->取模板,取数据,用数据渲染模板--->返回模板的字符串---->前端页面得到数据展现页面给用户 二.WEB开发模式: 在开发Web应用中,有两种应用模式: 前后端不分离前后端分离1 前后端不分离在前后端不分离的应用模式中,前端页面看到的效果都是…