首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django-rest-framewor

2 解析器组件 (用来解析数据的请求的组件)   Django并不能处理请求协议为application/json编码协议的数据   注意: DRF解析器会封装到View中的parsers内,在视图函数被调用时...定义需要返回的字段(字段类型可以与model中的类型不一致,参数也可以调整),字段名称必须与model中的一致 在GET接口逻辑中,获取QuerySet 开始序列化:将QuerySet作业第一个参数传给序列化类...,many默认为False,如果返回的数据是一个列表嵌套字典的多个对象集合,需要改为many=True 返回:将序列化对象的data属性返回即可  {{ 实践代码 }} --post接口设计 url...定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图类中定义post方法 开始序列化:通过我们上面定义的序列化类,创建一个序列化对象,传入参数...,获取url及视图类的对应关系 开始绑定视图类和url的对应关系,执行as_view()方法 as_view()方法被执行的时候传递了参数,为字典形式:{ “get”: “retrieve”, “delete

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DRF框架学习(三)

    DRF框架学习(三) 1.视图 1.1作用 1.控制序列化器的执行(数据检验、数据保存、转换数据(序列化操作)) 2.控制数据库的查询操作。...2.响应时可以统一返回Response类的对象 3.异常处理:如果视图中抛出了未处理异常,DRF框架会自动对异常进行处理,并且会把处理之后的错误信息返回给客户端。...lookup_url_kwarg指定从查询集获取对象时,从url地址中提取的参数的名称。 注意:经常配合Minxin扩展类来使用。...(重要) 2.2注意点 1、视图集中的处理方法不再是以请求方式命名,而是以对应的操作名称(list、create、update、retrieve、destroy) 2、在进行url配置的时候,要指明请求地址的请求方式和视图集中处理函数之间的对应关系...2.4视图集中添加额外的处理方法 1、直接在视图集中定义额外的处理方法即可 2、在进行url配置的时候指定请求地址请求方式和处理函数之间的对应的关系。

    1.2K20

    第 16 篇:别再手动管理接口文档了

    完善文档 drf-yasg 毕竟不是使用人工智能开发的,即使是使用人工智能,也很难做到 100% 的正确,毕竟由人类写的代码可能是千变万化的,工具无法预料到所有可能的情况,一旦它遇到无法处理的地方,自动生成的文档就可能出错...原理是 drf-yasg 会尝试去解析接口对应的序列化器(Serializer),从序列化器中提取出对应的请求和响应字段(如果序列化器中找不到,它会进一步去序列化器关联的模型中找),因此我们就可以给序列化器中定义的字段添加说明信息...,但在全局进行了配置),在解析 list_archive_dates 的参数时,drf-yasg 错误地解析到了从视图集继承来的 PostFilter 和 PageNumberPagination,所以就把这两个类中定义的参数也包含进文档了...原因也很明显,这个接口对应的 action 是 list_archive_dates,drf-yasg 在这个 action 中没有找到解析响应结果的序列化器(Serializer),所以它跑去视图集...responses 参数的值是一个字典,字典的键是 HTTP 响应码,值可以是一个序列化器,这样 drf-yasg 会拿这个序列化器去解析接口响应的参数;也可以是一个字符串,drf-yasg 会把字符串直接当做接口响应结果写入文档中

    1.8K20

    测试开发你不得不学的 REST API 开发

    首先是模型层,在apiTest/model.py 创建一个Project 类来存储项目信息: Django REST framework框架与Django框架最核心的区别就是:序列化器,DRF提供了定义序列化器...)来提供更加灵活的请求解析和使用内容协商来确定返回给客户端的正确内容类型。...接下来,我们将使用APIView 类进行视图开发。...在apiTest/project.py中添加以下代码: 显示-URLs 为了客户端能够访问开发完成的接口(即url与视图的映射),在apiTest/urls中添加如下代码: 如此就可以通过 http...后记 DRF 也提供了认证与权限、超链接API等等功能,大家可以通过查看官方文档继续学习~ 官网地址:https://www.django-rest-framework.org/

    1.1K10

    DRF框架中的英文单词

    DRF框架中的英文单词 1. prefix/'prifɪks/前缀,我们在路由配置的时候经常看见这个单词。在flask中,我们可以在设置url的时候为了区别视图,在类似功能的url全部加一个前缀。...17. detail/dɪˈtel/详细,我们在展示详情的时候,视图名称通常会用到这个单词。 18. urlpatterns这其实不是一个单词,我们只是将url和patterns(模式)组合了一下。...# 指明该视图在进行序列化或反序列化时使用的序列化器 serializer_class = BookInfoSerializer 23.通用参数: 参数名称 说明 read_only 表明该字段仅用于序列化输出...表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称...32. router/'rʊtɚ/路由器,我们指的可不是路由器了,它指的也不是视图函数,而是封装了视图函数和请求的url的映射关系的一个东西。 33.

    1.7K30

    从入门到_精通_Django REST Framework-(二)

    Serializer 在 DRF 中负责:序列化:将模型实例/Python 对象 → 转换为 JSON等格式反序列化:将客户端传入的数据 → 转换为 Python 对象 → 再保存到数据库数据验证:检查输入数据是否符合业务规则...嵌套其他序列化器(非字段,但常用于关系处理)comments = CommentSerializer(many=True) 文件与二进制数据字段类型 描述...基础扩展字段:处理特定格式数据(如金额用 DecimalField,URL 用 URLField)关系型字段:处理模型关联(如 SlugRelatedField 替代 PrimaryKeyRelatedField...error_messages 提升错误信息的可读性结合 validators 实现复杂业务规则验证五....数据验证5.1 三层验证机制字段级别验证:单个字段的合法性对象级别验证:多个字段的关系检查自定义验证器:可复用的验证逻辑5.2 验证示例class OrderSerializer(serializers.Serializer

    9500

    从入门到精通Django REST Framework-(六)

    什么是视图集?视图集是 DRF 提供的用于统一管理多个相关视图逻辑的类。...DRF 的路由器(如 DefaultRouter 和 SimpleRouter)通过以下机制自动生成 URL:视图集的标准化方法undefined视图集(如 ModelViewSet)定义了标准化的方法...:DRF 的路由器通过预定义的规则(如 list 对应 GET /users/),结合视图集的方法检测,动态生成 URL。...视图集中 @action 装饰器的使用@action 是 DRF 中用于在视图集(ViewSet)中定义自定义动作的核心装饰器,可以将任意方法暴露为 API 端点。下面通过更多场景详细说明其用法。...methods: 允许的 HTTP 方法(如 ['get', 'post'])。url_path: 自定义 URL 路径(默认用方法名)。url_name: 路由名称(用于反向解析)。

    8010

    Django实践-10RESTful架构和DRF入门

    资源只能是名词不能是动词,而且名词往往和数据库的表名相对应。同时,利用HTTP方法(post, get, put, delete)可以分离网址中资源名称的操作。...', 'name'] 上面的代码直接继承了ModelSerializer,通过Meta类的model属性指定要序列化的模型以及fields属性指定需要序列化的模型字段,稍后我们就可以在视图函数中使用该类来实现对...在Group和User中,我们使用的是HyperlinkedModelSerializer的超链接关系。您也可以使用主键和各种其他关系,但是超链接是很好的RESTful设计。...编写视图函数 DRF框架支持两种实现数据接口的方式,一种是FBV(基于函数的视图),另一种是CBV(基于类的视图)。代码如下所示。...bpmapper实现模型序列化的代码,使用DRF的代码更加简单明了,而且DRF本身自带了一套页面,可以方便我们查看我们使用DRF定制的数据接口,如下图所示。

    35421

    drf之请求、响应、视图

    参数说明: data: 为响应准备的序列化处理后的数据; status: 状态码,默认200; template_name: 模板名称,如果使用HTMLRenderer 时需指明; headers: 用于存放响应头信息的字典...drf 的提供的视图的主要作用有: 控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行 它还提供了许多的视图基类和拓展类,用于简化视图的编写。...提供的关于序列化器使用的属性与方法 属性:serializer_class  指明视图使用的序列化器 方法: get_serializer_class(self) : 当出现一个视图类中调用多个序列化器时...如果序列化器对前端发送的数据验证失败,返回400错误。...GenericAPIView的视图子类继承关系: ?

    2.2K20

    Django REST Framework

    ,版本信息也可以放在HTTP协议中 过滤信息,使用URL的参数代表过滤 返回值: 每一个返回代码都有具体特定含义 返回格式:推荐固定具体格式 DjangoRestFramework(DRF) https...,返回数据错误异常 validated_data: 经过验证后的数据,存入此结构 视图 DRF的视图从处理任务,处理流程等跟Django基本一致 此视图基本是django视图的扩展 Request...把请求解析成一个request实例 属于DRF的,跟django的HttpRequest不太一样 在得到Request之前有一个Parse对传入的数据请求进行解析 data属性 请求数据体,类似于Django...- 4xx: 请求错误 - 5xx: 服务器错误视图类APIViewrest_framework.views.APIView是django中View的子类跟View有不同的地方传入传出数据用的是...- 支持的属性 - queryset:查询结果集 - serializer_class: 视图使用的序列化器 - panination_class

    2.2K63

    DRF入门

    DRF序列化器 DRF中有一个serializers模块专门负责数据序列化,DRF提供的方案更先进、更高级别的序列化方案。...**HyperlinkedModelSerializer:**与ModelSerializer类似,只不过使用超链接来表示关系而不是主键ID。...-> 响应返回前端 反序列化(写数据):视图获取前端提交的数据 -> 数据传入序列化器 -> 调用序列化器的.is_valid方法进行效验 -> 调用序列化器的.save()方法保存数据 序列化器常用方法与属性...serializer.errors:获取反序列化器验证的错误信息 serializer.data:获取序列化器返回的数据 serializer.save():将验证通过的数据保存到数据库(ORM操作)...常用参数 通用参数 DRF序列化器:扩展验证规则 如果常用参数无法满足验证要求时,可通过钩子方法扩展验证规则。

    1.6K50

    RESTframework_一

    : 将JSON数据转化为Python数据 总结 开发REST API ,视图操作 将数据库序列化为前端所需要的格式,并返回 将前端的数据反序列化为模型类对象,并保存到数据库中 REST framework...特点: 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化; 提供丰富的类视图,Mixin扩展类,简化视图的编写 丰富的定制层级:函数视图...,类视图,视图集合到自动生成API,满足各种需要 多种身份认证和权限认证的支持 内置限流系统 直观的API web 界面 可扩展性,插件丰富 创建 REST framework 工程 安装DRF pip...序列化操作 基本使用 1) 查询一个图书对象 2) 构造序列化器对象 3) 获取序列化数据,如果获取的是多条数据,添加many=True 参数补充说明 def books(request)...(BookInfo.objects.all(),many=True).data print(book_dict) 关联对象嵌套序列化 # 关联对象嵌套序列化 # 1.主键形式输出 #

    72820

    DRF框架学习(二)

    3.2见识DRF的魅力 我们仍以在学习Django框架时使用的图书英雄为案例,使用Django REST framework快速实现图书的REST API。 3.2.1....serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器 3.2.3....= [ ... ] # 路由Router:动态生成视图集中API处理函数的url地址的配置项 router = DefaultRouter() # 可以处理视图的路由器 router.register...4.5序列化功能(重点掌握) 把实例对象转换为字典数据 知识点: 1、序列化单个对象 2、序列化多个对象 3、关联对象的嵌套序列化 1)将关联对象序列化为关联对象的主键 # 在英雄类(多)中添加 hbook...4.7模型类序列化ModelSerializer 如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer

    4.1K30

    第 11 篇:基于 drf-haystack 的文章搜索接口

    django-haystack 默认返回的搜索结果是一个类似于 django QuerySet 的对象,需要配合模板系统使用,因为未被序列化,所以无法直接用于 django-rest-framework...但是,通过之前的功能我们看到,使用 django-rest-framework 是一个近乎标准化但又枯燥无聊的过程:首先是编写序列化器用于序列化资源,然后是编写视图集,提供对资源各类操作的接口。...://elasticsearch.local:9200/' 因为这个 URL 地址需和容器编排文件 local.yml 中指定的容器服务名一致 Docker 才能正确解析。...对象,这个对象就是视图中的 HTTP 请求对象,但是因为 django 中 request 对象无法像 flask 那样从全局获取,因此 drf 在视图中将其保存在了序列化器和序列化字段的 context...属性中以便在视图外访问;获取 request 对象的目的是希望获取查询的关键字,query_params 属性是一个类字典对象,用于记录来自 URL 的查询参数,例如我们之前测试查询功能时调用的 URL

    1.6K20

    【愚公系列】2022年04月 Python教学课程 67-DRF框架之GenericAPIView

    文章目录 一、GenericAPIView ---- 一、GenericAPIView 此类扩展了 REST 框架的类,为标准列表视图和详细信息视图添加了通常需要的行为。...如果要重写视图方法,请务必调用而不是直接访问此属性,因为将评估一次,并且这些结果将缓存用于所有后续请求。 serializer_class:应用于验证和反序列化输入以及序列化输出的序列化程序类。...lookup_field:应用于执行各个模型实例的对象查找的模型字段。缺省值为 。请注意,使用超链接 API时,如果需要使用自定义值,则需要确保 API 视图和序列化程序类都设置了查找字段。...lookup_url_kwarg:应用于对象查找的 URL 关键字参数。URL conf应包含与此值对应的关键字参数。如果未设置,则默认使用与 相同的值。...获取serializer_class所指定的序列化器进行初始化操作 ser = self.get_serializer(books, many=True) # 使用序列化器对象的

    37720

    Django Rest Framework中嵌套关系的JSON序列化

    在 Django Rest Framework (DRF) 中,处理嵌套关系的 JSON 序列化是一个常见需求。以下是如何实现嵌套关系序列化的详细说明,包括序列化器定义、模型关系以及常见用法。...,我们需要编写一个视图来处理HTTP请求,并使用序列化器将模型数据序列化成JSON格式。...路由最后,我们需要在URL路由中配置视图,以便当用户访问特定URL时,能够调用相应的视图。...总结通过以上步骤,我们实现了在Django Rest Framework中对嵌套关系的JSON序列化。这为我们提供了更加灵活的方式来处理复杂的数据结构,并将其转换为JSON格式。...这样可以高效处理复杂的嵌套关系,提升 API 的可用性和性能!

    11110

    Django&DRF重点内容大盘点

    2)返回的时候用到了 HttpResponse这一命令返回响应对象 1.3.2url地址的配置 1.在子应用中的urls.py文件中设置当前子应用中url地址和视图对应关系 urlpatterns =...[ url(r'^url正则表达式$',views.视图函数名) ] 2.在项目总的urls.py文件中包含子应用中的urls.py文件 urlpatterns = [ url(r'^'...()) 1.9.2类视图添加装饰器 使用Django框架提供method_decorator将针对函数视图装饰器添加到类视图的方法上面 # 为全部请求方法添加装饰器 @method_decorator(...站点就可以进行图片上传 2.DRF框架 2.1目的 利用DRF框架快速的实现RestAPI接口的设计 2.2RestfulAPI接口设计风格 关键点 1)url地址尽量使用名词,不要使用动词 2)请求url...(label='图书') 注意:和对象关联的对象如果有多个,在序列化器中定义嵌套序列化字段时,需要添加many=True。

    5.9K20
    领券