首页 > 其他分享 >2. DRF 解析器

2. DRF 解析器

时间:2024-07-15 18:51:39浏览次数:8  
标签:解析器 form request 视图 data DRF

目录

Django DRF 解析器

1. 解析器作用

request请求先进到APIView的dispatch方法, 如果有异常走到exception。

Json请求

www-form 请求

form-data请求

可以看到不同类型的请求, request.data 拿到的对象不同, Json格式拿到的是字典, www-form和form-data拿到的是queryset。

2. 使用

解析器默认配置

可以看到drf默认配置了三个解析器

为视图类定义解析器

在视图类中可以只定义单个解析器

class Home(APIView):
    
    from rest_framework.parsers import JSONParser
    parser_classes = [JSONParser]

    def get(self, request, *args, **kwargs):
        print(request.content_type)
        print(request.data)
        return Response({'status': "OK"})

修改全局配置

在settings.py中添加

REST_FRAMEWORK = {
    'EXCEPTION_HANDLER': 'app01.utils.handlers.exception_handler',
    'DEFAULT_PARSER_CLASSES': [
            'rest_framework.parsers.JSONParser'
    ]
}

标签:解析器,form,request,视图,data,DRF
From: https://www.cnblogs.com/khalil12138/p/18303754

相关文章

  • 1. DRF 异常处理
    目录DjangoDRF异常处理1.DRF对异常(Exception)的处理源码2.自定义异常返回utils/handlers.pyutils/exceptions.pyviews.pyDjangoDRF异常处理1.DRF对异常(Exception)的处理源码request请求先进到APIView的dispatch方法,如果有异常走到exception。2.自定义异常返回uti......
  • 6. DRF 版本
    目录DjangoDRF版本1.使用1.1URL传递version参数DjangoDRF版本1.使用rest_framework的versioning.py中定义了多种方法,支持不同方式携带version信息,比如支持url/hostname/namespace中携带并传递version信息1.1URL传递version参数https://127.0.0.1:8000/user/?ve......
  • 5. DRF 限流
    目录DjangoDRF限流1.使用1.1设置认证全局变量1.2为单个视图方法设置权限1.3限制用户一小时只能访问五次DjangoDRF限流1.使用1.1设置认证全局变量在settings.py添加如下代码REST_FRAMEWORK={"DEFAULT_THROTTLE_CLASSES":['utils.throttle.MineThrottle']}......
  • drf 中url包含多个动态参数
    from.importviewsfromdjango.urlsimportpath,re_pathfrom.importviewsurlpatterns=[path('v2/sendSms',views.SendSmsAPIView.as_view(),name='sendSms'),path('v2/sendSmsPa',views.SendSmsPaAPIView.as_view(),......
  • DRF 前后端分离项目如何解决CSRF 数据交互
    ★背景说明在DjangoRESTframework(DRF)前后端分离项目中,解决CSRF问题通常有以下几种方法:1.禁用CSRF验证,但这会降低安全性。(不推荐)2.使用csrftokencookie3.在前端每次POST、PUT或DELETE请求前先发起一个GET请求(GET请求不需要经过CSRF检查)获取CSRFToken并将响......
  • 【JavaScript脚本宇宙】高效Web开发利器:全面解析六大HTML解析器与DOM库
    精益求精:揭秘六个改变Web开发的HTML解析与DOM操作工具前言在现代Web开发中,HTML解析器和DOM操作库是不可或缺的工具。无论是爬取数据、处理复杂的HTML文档,还是模拟浏览器环境,这些工具都扮演着关键角色。本文将深入探讨六个广泛使用的HTML解析器和DOM操作库,它们分别是:htmlpa......
  • AI大模型企业应用实战(19)-RAG应用框架和解析器
    1开源解析和拆分文档第三方工具去对文件解析拆分,将文件内容给提取出来,并将我们的文档内容去拆分成一个小的chunk。常见的PDFwordmarkdown,JSON、HTML。都可以有很好的一些模块去把这些文件去进行一个东西去提取。1.1优势支持丰富的文档类型每种文档多样化选择与开源框......
  • DRF 报错:RuntimeError: Model class django.contrib.contenttypes.models.ContentType
    该错误发生于将'django.contrib.contenttypes'注释之后该组件的功能见如下链接:https://www.cnblogs.com/xiugeng/p/9831665.htmldrf的APIView内部会走认证源码,相关代码导致的报错,怎么解决呢?就是在settings.py中配置上如下两个参数(匿名用户和认证)即可:https://www.cnblogs.com/N......
  • 递归下降解析器在Python中的实现与应用
    1.引言递归下降解析器是一种用于解析编程语言语法的算法,它通过递归调用函数来处理语法规则。在本文中,我们将深入探讨递归下降解析器的工作原理,以及如何在Python中实现它。2.解析器简介解析器是编译器前端的核心组件之一,负责将源代码转换为编译器能够进一步处理的内部表......
  • Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
    系列文章目录Django入门全攻略:从零搭建你的第一个Web项目DjangoORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作DjangoORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解DjangoORM深度游:探索多对一、一对一与多对多数据关系的奥秘与实践跨域问题与Django解决......