随笔分类 -  Django Rest Framework

摘要:rest_framework序列化类的继承关系 field类: 序列化基类的基类 BaseSerializer: 继承field 派生ListSerializer序列化类 Serializer: 继承SerializerMetaClass 继承BaseSerializer ModelSerializ 阅读全文
posted @ 2022-09-20 18:07 木子七 阅读(57) 评论(0) 推荐(0) 编辑
摘要:什么是渲染器 渲染器就是将服务器生成的数据格式转为http请求的格式 渲染器触发及参数配置 在DRF配置参数中,可用的渲染器作为一个类的列表进行定义 但与解析器不同的是,渲染器的列表是有顺序关系的 REST框架将对传入请求执行内容协商,根据请求的类型确定最合适的渲染器以满足类型要求 内容协商过程会检 阅读全文
posted @ 2022-09-19 18:32 木子七 阅读(148) 评论(0) 推荐(0) 编辑
摘要:什么是解析器 因为前后端分离,可能有json、xml、html等各种不同格式的内容 后端也必须要有一个解析器来解析前端发送过来的数据 不然后端无法处理前端数据 后端有一个渲染器Render,和解析器是相反方向,将后端数据翻译成前端能明白的数据格式 Django原生的解析器 Django原生的解析器对 阅读全文
posted @ 2022-09-19 17:44 木子七 阅读(189) 评论(0) 推荐(0) 编辑
摘要:像一些reils这样的web框架提供自动生成urls的功能,但是Django没有 rest framework为django添加了这一功能,以一种简单、快速、一致的方式 routers必须配合viewset使用 #导包 from rest_framework import routers ''' D 阅读全文
posted @ 2022-09-19 16:09 木子七 阅读(146) 评论(0) 推荐(0) 编辑
摘要:在dispatch过程中,下列属性可用于 ViewSet : basename - 根url路径 action - 当前动作类型(例如 list , create ). detail - 用于指示当前动作是针对一个列表还是一个对象detail的布尔指示器 suffix - viewset类型的前缀 阅读全文
posted @ 2022-09-17 17:29 木子七 阅读(63) 评论(0) 推荐(0) 编辑
摘要:很多时候业务需求并不是几个简单的mixin就可以满足,需要我们自定义mixin # get_object源码中字段查询源代码 filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]} obj = get_object_or_ 阅读全文
posted @ 2022-09-17 14:42 木子七 阅读(36) 评论(0) 推荐(0) 编辑
摘要:通用类视图 以下类是具体的通用视图,也是我们平时真正使用的类,除非你需要深度定制,否则不要直接使用mixin父类。 这些视图类可以从 rest_framework.generics 导入 CreateAPIView """ 仅用于创建功能的视图。提供 post 方法。 """ #源码 class C 阅读全文
posted @ 2022-07-21 20:17 木子七 阅读(31) 评论(0) 推荐(0) 编辑
摘要:mixin类用于提供视图的基本操作行为,注意mixin类提供动作方法,而不是直接定义处理程序方法 例如.get() .post(),这允许更灵活的定义,mixin从rest_framework.mixins导入 mixin只是提供了基本操作行为,并没有queryset、get_object()等属性 阅读全文
posted @ 2022-07-21 19:33 木子七 阅读(84) 评论(0) 推荐(0) 编辑
摘要:generics.ListCreateAPIView #源码 class ListCreateAPIView(mixins.ListModelMixin, mixins.CreateModelMixin, GenericAPIView): """ Concrete view for listing 阅读全文
posted @ 2022-07-20 19:33 木子七 阅读(253) 评论(0) 推荐(0) 编辑
摘要:APIView REST framework提供了一个 APIView 类,它是Django的 View 类的子类。 APIView 类和Django原生的类视图的 View 类有以下不同: 传入的请求对象不是Django原生的 HttpRequest 类的实例,而是REST framework的R 阅读全文
posted @ 2022-04-30 15:23 木子七 阅读(114) 评论(0) 推荐(0) 编辑
摘要:源代码位于:response.py REST framework 提供一个 Response 类来支持 HTTP内容协商,该类允许返回可以呈现为多种类型的内容,具体取决于客户端的请求。 这个 Response 类是 Django中 SimpleTemplateResponse 类的一个子类。 Res 阅读全文
posted @ 2022-04-30 15:19 木子七 阅读(84) 评论(0) 推荐(0) 编辑
摘要:REST framework的 Request 类扩展了Django标准的 HttpRequest ,添加了对REST framework请求解析和身份验证的支持。 源代码片段: class Request(object): """ Wrapper allowing to enhance a sta 阅读全文
posted @ 2022-04-30 15:17 木子七 阅读(174) 评论(0) 推荐(0) 编辑
摘要:REST框架为我们提高了一个更加抽象的ViewSet视图集,ViewSet提供一套自动的urlconf路由 ViewSet与View类几乎相同,不同之处在于它们提供诸如read或update之类的操作,而不是get、put等方法处理程序 ViewSet通常使用Router类来处理URL conf 一 阅读全文
posted @ 2022-04-30 15:14 木子七 阅读(98) 评论(0) 推荐(0) 编辑
摘要:如图所示,snippets返回的对应的ID列表,我们可以把冰冷的字段转化为可以跳转的对应ID的url链接跳转对应的ID详情 使用: 我们需要修改序列化类继承serializers.HyperlinkedModelSerializer,而不再继承serializers.ModelSerializer 阅读全文
posted @ 2022-04-30 15:10 木子七 阅读(105) 评论(0) 推荐(0) 编辑
摘要:我们可以通过使用超链接来提高我们APi的内聚力和可发现性 一、为我们的API创建一个根路径 我们的视图有很多个url,但是没有一个入口点,可以使用@api_view创建一个根路径 #views.py from rest_framework.decorators import api_view fro 阅读全文
posted @ 2022-04-30 15:08 木子七 阅读(51) 评论(0) 推荐(0) 编辑
摘要:如果我们希望只有通过认证的用户才可以进行一些操作,例如删除、更新等,就需要为设置一些权限 导包:from rest_framework import permissions 使用 1.在视图类方法里面直接定义权限 # permission_classes 为当前视图应该遵守的权限,是一个元组 # I 阅读全文
posted @ 2022-04-30 15:07 木子七 阅读(214) 评论(0) 推荐(0) 编辑
摘要:一、概念 目前为止,我们的api对谁可以编辑或删除代码片段没有任何限制,也就是说没有任何认证和权限相关的设置,通常我们会做一些权限确保 每个代码都关联一个创建者 只有通过身份验证的用户可以创建片段 只有代码片段的创建者可以更新或删除它 未经身份验证的请求应具有全部的只读的访问权限 二、为模型添加用户 阅读全文
posted @ 2022-04-29 19:36 木子七 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、混合类(mixins) 使用基于类的视图,最大的优势之一就创建可复用的代码 我们编写的非常类似的代码,可以抽象出来,将这部分代码放到mixin类系列中,然后作为父类提供子类继承使用 from rest_framework import mixins # 导入 二、使用mixins from re 阅读全文
posted @ 2022-04-29 19:31 木子七 阅读(71) 评论(0) 推荐(0) 编辑
摘要:from rest_framework import status from rest_framework.response import Response from snippets.models import Snippet from snippets.serializers import Sn 阅读全文
posted @ 2022-04-29 19:29 木子七 阅读(37) 评论(0) 推荐(0) 编辑
摘要:为url添加可选的后缀 在drf的机制中,响应数据的格式不再与单一内容类型连接,可以同时享有json格式或html格式,我们可以为api路径添加格式后缀的支持,使用格式后缀给我们明确指定了给定格式的url 这意味着我们的api将能够处理诸如http://xxxx.com/api/1.json 之类的 阅读全文
posted @ 2022-04-29 19:28 木子七 阅读(248) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
workspaces
keyboard_arrow_up dark_mode palette
选择主题