APIView源码分析】的更多相关文章

{drf,resful,apiview,序列化组件,视图组件,认证组件,权限组件,频率组件,解析器,分页器,响应器,URL控制器,版本控制} 一.CBV源码分析准备工作: 新建一个Django项目 写一个基于类的视图 继承,写get,post方法 from django.shortcuts import render, HttpResponse from django.views import View from django.http import JsonResponse # Create…
1 CBV的源码分析 #视图 class login (View): pass #路由 url(r'^books/$', views.login.as_view()) #阅读源码: #左侧工程栏--->设置图标-->点击--->show members(能看到py文件,pu下的类,类下的方法) -Class Base View(基于类的视图) -Function Base View(基于函数的视图) -def as_view 类方法 :返回view -def view:as_view的内…
一.什么是rest REST其实是一种组织Web服务的架构,而并不是我们想象的那样是实现Web服务的一种新的技术,更没有要求一定要使用HTTP.其目标是为了创建具有良好扩展性的分布式系统. 可用一句话总结:url用来唯一定位资源, 用http请求方式来区分用户对数据的操作方式. http://www.scienjus.com/my-restful-api-best-practices/ rest下的url 1. url的设计规范 没有任何动词 不同的请求代表不同的功能 GET: 127.0.0.…
目录 一.Restful规范 十条规范 二.drf的简单使用 三.APIView源码分析 CBV源码分析 APIView源码分析 一.Restful规范 Restful规范是一种web API接口的设计风格,在前后端分离的应用模式中适用较多. 这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源. 十条规范 1.是数据的安全保障:url链接一般都采用HTTPS协议进行传输 2.接口特征表现,一看就知道是个…
在django—CBV源码分析中,我们是分析的from django.views import View下的执行流程,这篇博客我们介绍django Rest Framework下的APIView的源码分析. 一.as_view() 我们还是先从URLconfig中入手,由于BookView是一个基于类的视图,所以我们将URL指向as_view()类方法 url(r'books/',views.BookView.as_view()), 此时,我们的BookView已经不是继承自django.vie…
CBV源码分析 1概念:什么是cbv和fbv 已经什么是API class bass View ---基于类的视图 function bass View ---基于函数的视图 API(Application Programming Interface)API 就是应用程序编程接口.它是能用来操作组件.应用程序或者操作系统的一组函数 2什么是幂等性 现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用…
Django REST framework 简介 现在新一代web应用都开始采用前后端分离的方式来进行,淘汰了以前的服务器端渲染的方式.而实现前后端分离是通过Django REST framework(以下简称 DRF)来实现的.他是Django框架的一个扩展,提供了便捷的 REST API 开发框架.前后端分离方式有许多好处,比如: 1.1 可以前后端并行开发,提高开发效率 1.2 页面都在客户端进行渲染,提高了渲染速度,减小了服务器的压力 1.3 一套api提供给多个客户端使用,而且不限制客…
cbv源码拓展 扩展,如果我在Book视图类中重写dispatch方法 -可以实现,在get,post方法执行之前或者之后执行代码,完成类似装饰器的效果 def dispatch(self, request, *args, **kwargs): # 请求执行前代码 response=super().…
CBV源码分析 查看源码的方式,先查看自身,没有去找父类,父类没有就去找父父类... 自己定义的类 class Author(View): def get(self,request): back_dic = {'status_code': 100, 'msg': 'get ok'} return JsonResponse(back_dic) def post(self,request): back_dic = {'status_code': 102, 'msg': 'post ok'} retu…
首先写一个简单的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…