Django RestFramework(DRF)类视图】的更多相关文章

基础视图 1.基础函数视图(@api_view) DRF提供了一种函数基础视图来装饰Django的普通视图,我们可以使用request来接受请求和response响应.一个小例子: from rest_framework.decorators import api_view @api_view def hello_world(request): return Response({"message":"Hello world!"}) 1)@api_view使用方法 这…
刚开始写views.py模块的代码,一般都是用def定义的函数视图,不过DRF更推荐使用class定义的类视图,这能让我们的代码更符合DRY(Don't Repeat Yourself)设计原则: 使用APIView rest_framework.views.APIView是DRF封装的API视图,继承了django.views.generic.base.View: 我们用它把函数视图改写成类视图,编辑snippets/views.py: from snippets.models import…
上节提到过,REST框架分别提供了对函数和类的装饰器,之前已经都是通过函数来写视图函数的,现在来尝试使用class 类来实现视图函数 使用基于类编写API视图,允许重用常用的功能,减少代码重复. 一.REST框架基于类实现API 根据之前的函数视图重写基于类的视图,只涉及到了重构views.py # 第三种 类视图 from django.http import Http404 from test_app import serializer from test_app import models…
# 原创,转载请留言联系 当我们在开发一个注册模块时.浏览器会通过get请求让注册表单弹出来,然后用户输完注册信息后,通过post请求向服务端提交信息.这时候我们后端有两个视图函数,一个处理get请求,一个处理post请求.两个视图函数都是不同的名字. 但是随着开发的进行.当你想要找到注册模块的这两个视图,太麻烦了.如果这两个视图函数能放在一起,归成一个类,作为注册模块的类.这样日后的维护将会方便很多.这时候,django的类视图就能实现这个功能了. 1.对比 在没有类视图前,视图是这样的: d…
1.使用类视图APIView重写API 类视图APIView,取代@api_view装饰器,代码如下: from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from snippets.models import Snippet from snippets.serializers import SnippetSe…
分页 继承APIView类的视图中添加分页 from rest_framework.pagination import PageNumberPagination class MyPageNumberPagination(PageNumberPagination): # 定义一个PageNumberPagination的子类 # 如需改变参数,重写其属性即可 page_size = 6 #每页显示条数 page_query_param = 'page' # url中的参数的key page_siz…
URLS: from django.contrib import admin from django.urls import path from cmbd import views urlpatterns = [ path('admin/', admin.site.urls), path('home/', views.Home.as_view()), ] VIEWS: from django.shortcuts import render,redirect from django.shortcu…
准备: 下载 pip install djangorestframework 一 APIView源码解析 1 预备知识 CBV(class based view)FBV(function based view) 2 CBV源码 class LoginView(View): def get(self,request): return render(request,"login.html") url(r'^index/', views.index), #url(r'^login/', vi…
1. 视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 1.1. 请求与响应 1.1.1 Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象. REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Ty…
一 关于视图类的一下概念 drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作.所以在django原有的django.views.View类基础上,drf封装了多个子类出来提供给我们使用. Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 调用请求类和响应类(这两个类也是由drf帮我们再次扩展了一些功能类). 请求与响应 1.1 Request请求 REST framework 传入视图的request…