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

重点内容回顾-DRF

重点内容回顾-DRF 1. on_delete on_delete是定义模型类中外键的一个选项。 on_delete选项指明的是主表删除数据的时候,对于外键引用的表数据如何处理。...包含queryset参数的时候,将被用在反序列化参数校验。...5.3序列化&反序列化 下面我们最近推文的项目来简单的理解两个概念。 序列化:将模型对象转换为字典或者json数据的过程。 反序列化:将前端传递的数据保存到模型对象中的过程。...数据库查询 属性: queryset(指定视图所使用的查询集) 方法: get_queryset返回视图所使用的查询集 get_object视图所使用的查询集中查询指定的对象,默认根据pk进行查询。...class StandardResultPagination(PageNumberPagination): # 指定页容量 page_size = 3 # 指定获取分页数据时,传递的也容量参数名称

2.4K20

DRF框架学习(二)

: 1)根据pk获取指定的图书对象 2)删除对应数据 3)返回响应,状态码:204 注意: pk是id的一个别称 重点掌握的是实现的思路,如何去将需求一步步实现出来,然后其次重要的就是代码。...2.明确RestAPI接口实现时的主要工作 2.1序列化&反序列化程序中的数据结构类型转换为其他格式的数据,这个过程叫做序列化的过程 例:将模型类对象转换为字典或者json数据的过程,就叫做序列化的过程...把其他格式的数据转换为程序中数据结构类型,这个过程叫做反序列化的过程。 例:将前端传递的数据保存到模型对象中的过程,叫做反序列化过程。...__' model 指明该序列化器处理的数据字段模型类BookInfo参考生成 fields 指明该序列化器包含模型类中的哪些字段,’all‘指明包含所有字段 3.2.2....字段名 = serializers.字段类型(选项参数) from rest_framework import serializers # serializers.Serializer:DRF框架中所有序列化器的父类

4.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Django&DRF重点内容大盘点

1.3一个程序注意的点 1.3.1视图函数的定义 1)定义视图函数之后,要有一个request形参接收请求对象。...1.6.1通过URL地址传递参数 在我们的url地址中的参数,我们如果想要获取可以在子应用中的urls文件中进行设置 还可以像 (?...city>\w+)这样给分组起名字,在传参的时候就可以不用按照顺序了 /weather/城市/年份 url(r'weather/(\w+)/(\d{4})/$',views.weather) 1.6.2通过查询字符串传递参数...,并返回 2.将前端发送的数据反序列化为模型类对象,并保存到数据库中 2.4DRF框架 2.4.1作用:大大提高RestAPI接口开发效率 2.5序列化器Serializer 2.5.1功能 进行数据的序列化和反序列化...:DRF框架中所有序列化器的父类,定义序列化器类时,可以直接继承此类 # serializers.ModelSerializer:Serializer类的子类,在父类的基础上,添加一些功能 class

5.9K20

美多商城项目(五)

并且在查询出数据,返回结果之前,先将查询的结果存到缓存中,便于下次使用。 2.2使用缓存 在Django REST framework中使用缓存,可以通过 drf-extensions扩展来实现。...3.获取参数并进行校验(参数完整性,手机号格式,邮箱格式)。 4.创建并保存新增地址数据。 5.将新增地址数据序列化并返回。 写代码之前,先定义地址的序列化器类。...有些字段是序列化时使用,有些字段是反序列化时使用,因此我们需要对这些字段通过参数进行设置。...self.get_serializer(...)创建序列化器对象时,会向序列化器对象的context属性中补充request参数,可以通过 序列化器对象.context['request']来获取request...P\d+)/title/ 参数: 通过url传递地址的pk 通过请求头传递jwt token 通过请求体参数title 响应: { "id":"地址

1.2K30

第 9 篇:实现分类、标签、归档日期接口

事实上,我们在上一部教程 HelloDjango - Django博客教程(第二版)的 页面侧边栏:使用自定义模板标签 已经讲解了如何获取归档日期列表,只是当时返回的归档日期列表直接用于模板的渲染,而这里我们需要将归档日期列表序列化后通过...对于这样的场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后全部文章列表中过滤出查询所指定的文章列表再返回。...归档日期下的文章列表,我们设计的接口传递 2 个查询参数:年份和月份。...) 例如示例中定义的 created_year 查询参数查询参数值的类型为 number,即数字,查询的模型字段为 created_time,查询表达式是 year。...当用户传递 created_year 查询参数时,django-filter 实际上会将以上定义的规则翻译为如下的 ORM 查询语句: Post.objects.filter(created_time_

2.6K30

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

接收的参数(包括 URL 中的路径参数查询参数;HTTP 请求头的参数;HTTP 请求体等参数)。 接口返回的内容。...GET /posts/archive/dates/ 这个接口显示的参数是错误的,它不应该接受任何查询参数,接口响应参数也是错误的。...其中 toc 和 body_html 因为不是 Post 中定义的字段,所以 drf-yasg 无法知道关于这两个字段的说明。 drf-yasg 是如何知道这个接口会返回哪些响应参数的呢?...原理是 drf-yasg 会尝试去解析接口对应的序列化器(Serializer),序列化器中提取出对应的请求和响应字段(如果序列化器中找不到,它会进一步去序列化器关联的模型中找),因此我们就可以给序列化器中定义的字段添加说明信息...responses 参数的值是一个字典,字典的键是 HTTP 响应码,值可以是一个序列化器,这样 drf-yasg 会拿这个序列化器去解析接口响应的参数;也可以是一个字符串,drf-yasg 会把字符串直接当做接口响应结果写入文档中

1.8K20

DRF序列化和反序列化——基本使用

DRF序列化和反序列化 定义序列化DRF中有serializer的类,我们可以rest_framework进行导入。...使用序列化器 由于DRF提供的序列化器是一个类,我们得继承这个类来定义自己的序列化器,因此我们需要实例化序列化器来达到使用它的目的。...id=1 # 查询id为1的书籍信息 查询结果如下所示: 通过data属性获取序列化之后的数据。如果需要获取多条数据,需要使用参数many=True。...True default 反序列化时使用的默认值 label 用于HTML展示API页面时,显示的字段名称 选项参数参数名称 作用 max_length 最大长度 min_lenght 最小长度...save()方法会根据创建序列化器对象的时候,有没有传递instance实例,来分别调用create和update。

1K10

Django REST Framework

创建视图聚合 序列化 序列化: 把系统运行中的一些实例等转换成一种可直接表示出来的格式,用来保存,传输等 反序列化序列化的反操作序列化/反序列化-DRF 实验步骤 创建project DRF2 创建...app MySer settingsserializer的类型的参数 read_only: 仅用于序列化输出 write_only: 反序列化输入 required:反序列化时必须输入,默认是True...验证 is_valid: 验证数据是否合法,返回boolean 在使用外部传入的数据之前,必须使用此函数进行验证 如果验证失败,返回数据错误异常 validated_data: 经过验证后的数据,存入此结构...视图 DRF的视图处理任务,处理流程等跟Django基本一致 此视图基本是django视图的扩展 Request 把请求解析成一个request实例 属于DRF的,跟django的HttpRequest...- lookup_field:查询条件字段,默认为pk - get_queryset: 返回查询结果集集合,经常需要重写 - get_serializer_class:

2.1K63

DRF入门

序列化序列化与反序列化介绍 在日常开发中,会别的API获取数据或者自己写API提供数据,数据格式一般都是采用JSON格式。...:JSON 之前经常用json模式完成序列化与反序列化操作: 序列化应用场景示例:用ORM查询数据,采用JSON格式API返回数据。...反序列化应用场景示例:别的API获取数据,在Python里处理。...序列化器: 序列化参数 序列化器工作流程: 序列化(读数据:视图里通过ORM数据库获取数据查询集对象 -> 数据传入序列化器-> 序列化器将数据进行序列化 -> 调用序列化器的.data获取数据...常用参数 通用参数 DRF序列化器:扩展验证规则 如果常用参数无法满足验证要求时,可通过钩子方法扩展验证规则。

1.6K50

安装 Django REST Framework

'rest_framework',]这将允许您使用DRF的所有功能。现在您已经安装了DRF,接下来我们将介绍一些基本的用法和示例。创建序列化序列化器是DRF中的一个核心概念。...serializers.ModelSerializer): class Meta: model = User fields = ['id', 'username', 'email']在上面的示例中,我们rest_framework...我们指定了User模型作为序列化器的元数据,并指定了我们想要在JSON中包含的字段。创建视图视图是DRF中的另一个核心概念。它们定义了API的行为,即如何响应请求、如何验证输入等。...generics.ListAPIView): queryset = User.objects.all() serializer_class = UserSerializer在上面的示例中,我们rest_framework...我们指定了我们想要返回的所有用户的查询集,并指定了用于序列化数据的序列化器。创建路由路由是将URL映射到视图的一种机制。在DRF中,我们可以使用Django的URLConf和DRF的路由器来定义路由。

1.4K20

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

自定义序列化字段其实非常的简单,基本流程分两步走: drf 官方提供的序列化字段中找一个数据类型最为接近的作为父类。 重写 to_representation 方法,加入自己的序列化逻辑。...to_representation 方法对输入的值进行序列化,这个方法接收的第一个参数就是需要序列化的值。...对象,这个对象就是视图中的 HTTP 请求对象,但是因为 django 中 request 对象无法像 flask 那样全局获取,因此 drf 在视图中将其保存在了序列化器和序列化字段的 context...属性中以便在视图外访问;获取 request 对象的目的是希望获取查询的关键字,query_params 属性是一个类字典对象,用于记录来自 URL 的查询参数,例如我们之前测试查询功能时调用的 URL...text=markdown,所以 query_params 保存了 URL 中的查询参数,将其封装为一个类字段对象 {"text": "markdown"},这里 text 的值就是查询的关键字,我们将它传给

1.6K20

django和drf_类中的方法可以序列化

drf_app.urls.py中分别写入如下代码 # drf_demo.urls.py urlpatterns = [ path('drf/', include('drf_app.urls')...serializers.py文件,接下来可以正式编写序列化类了 序列化类编写 # Serializer的构造函数的参数: # 1. instance:需要传递一个orm对象,或者是一个queryset...对象,用来将orm转成json # 2. data:把需要验证的数据传递给data,用来验证这些数据是不是符合要求 # 3. many:如果instance是一个queryset对象,那么就需要设置为True...,字段中的参数都继承自Field类,参数如下 def __init__(self, read_only=False, write_only=False, required=None...如果该字段不入库,且不参与全局钩子校验,可以将值取出校验 为有联合关系的字段们提供全局钩子函数,如果某些字段不入库,可以将值取出校验 重写create方法,完成校验通过的数据入库工作,得到新增的对象 发布者:全栈程序员栈长

1.1K30

不会DRF?源码都分析透了确定不来看?

快速使用DRF写出接口 序列化和反序列化 drf快速使用 views.py serializer.py urls.py 在settings的app中注册 models.py postman测试 CBV源码流程分析...中的序列化序列化又是如何?...(序列化) json格式字符串 -----》 python 对象 (反序列化如何使用DRF快速写出增删查改的接口?...drf快速使用 快速写5个接口 使用Django写五个接口得配5个路由,5个视图函数去处理,现在使用drf不需要了,如下: -查询所有---》get->http://127.0.0.1:8000...局部修改:修改id为1的数据,修改啥写啥 删除一条数据:删除id为2的数据 CBV源码流程分析 因为DRF框架里大部分都是基于CBV(视图类)写,所以流程是什么,如何执行需要了解

1.3K10
领券