首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

from rest_framework.decorators import action from rest_framework.serializers import DateField class...而这个接口中只需要序列化一个时间字段(类型为 Python 标准库的 datetime.date),所以没必要单独定义一个序列化器了,直接拿 django-rest-framework 提供的用于序列化时间类型的...接着我们接口返回一个 Response, Response 将序列化后的结果包装返回(保存在 data 属性),django-rest-framework 会进一步帮我们把这个 Response 包含的数据解析为合适的格式...这在 RESTful API 的设计中肯定是会遇到的,因此第三方库 django-filter 帮我们实现了上述所说的查询过滤功能,而且和 django-rest-framework 有很好的集成,我们可以...其中 filter_backends 设置为 DjangoFilterBackend,这样 API 返回结果时, django-rest-framework 会调用设置的 backend(这里是 DjangoFilterBackend

2.6K30

drf序列化器之反序列化的数据验证

如果是非字段错误,可以通过修改REST framework配置的NON_FIELD_ERRORS_KEY来控制错误字典的键名。...', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', # 把drf框架注册到...(verbose_name='发布日期') # 设置存储文件的子目录为avatar,总目录不写的话是settings配置,不填则没有 image = models.ImageField...此时,就可以使用序列化器的反序列化器,接下来,定义一个图书的序列化器,此序列化器主要用于反序列化器阶段,unsers子应用,创建serializers.py,代码如下 from rest_framework...False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段序列化时必须输入,默认True default 反序列化时使用的默认值 allow_null

2.1K30

DjangoRESTframework(补充)

serializer_class 指明该视图进行序列化或反序列化时使用的序列化器 3.定义路由 from . import views from rest_framework.routers import...django的路由列表 定义序列化器 继承自 rest_framework.serializers.Serializer 已有一个模型类BookInfo class BookInfo(models.Model...两个基类 1) APIView rest_framework.views.APIView APIView是REST framework提供的所有视图的基类,继承自Django的View父类...APIView与View的不同之处在于: 传入到视图方法的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...注意,提供序列化器对象的时候,REST framework会向对象的context属性补充三个数据:request、format、view,这三个数据对象可以定义序列化器时使用。

2.2K30

python测试开发django-64.序列化(Serializer)

前言 REST framework的serializers与Django的Form和ModelForm类非常像。...我们提供了一个Serializer类,它为你提供了强大的通用方法来控制响应的输出, 以及一个ModelSerializer类,它为创建用于处理模型实例和查询集的序列化程序提供了有用的快捷实现方式。...serializers.Serializer 先从一个简单的案例开始,apiapp目录下编辑models.py,以创建用户个人信息model为例 # models.py from django.db...apiapp目录下新建一个serializersapi.py文件,该文件先编辑需要序列化的model,id是系统默认自带的一个字段。...views.py视图 views.py编辑以下内容 # views.py from rest_framework.response import Response from rest_framework.views

54320

python测试开发django-62.基于类的视图(APIView和View)

前言 django编辑视图views.py有两种方式,一种是基于类的实现,另外一种是函数式的实现方式,两种方法都可以用。...View与APIView的区别 View是Django默认的视图基类,APIView是REST framework提供的所有视图的基类, 继承自Django的View。...APIView与View的不同之处在于: 传入到视图方法的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...的Response对象,视图会为响应数据设置(render)符合前端要求的格式; 任何APIException异常都会被捕获到,并且处理成合适的响应信息; APIException异常捕获 进行dispatch...REST framework的APIView REST framework的APIView继承了django的View类,先序列化Card类,这里的序列化rest_framework里面的ModelSerializer

1.4K20

Django REST Framework-自定义序列化

Django REST Framework(DRF)提供了许多内置的序列化器,可以处理大多数序列化需求。但是,某些情况下,内置的序列化器可能无法满足我们的要求。...以下是一个简单的自定义序列化器示例:from rest_framework import serializersfrom .models import Bookclass BookSerializer(...title = serializers.CharField() author = serializers.CharField() published_date = serializers.DateField...我们可以使用以下代码Django视图中使用自定义序列化器:from rest_framework import genericsfrom .serializers import BookSerializerfrom...例如,以下是一个自定义序列化器示例,它根据用户的角色返回不同的字段:from rest_framework import serializersfrom .models import Bookclass

34230

DjangoRestFramework,序列化组件、视图组件

#django序列化组件,不是我们要学的drf的序列化组件昂 #from rest_framework import status #返回指定状态码的时候会用到 #return Response(...一种常见的使用场景就是Model存在user_id作为外键,在用户提交时,不允许提交user_id,但user_id定义Model时又是必须字段,这种情况下就可以使用HiddenField提供一个默认值...默认值为False。 3.required required=False表示对应字段序列化时是非必需的。正常情况下,如果反序列化时缺少字段,则会抛出异常。默认值为True。...设置。...等基础校验之外,还会会根据咱们写的这个序列化组件设置的字段中有read_only=True属性的字段排除掉,这也是为什么我们面写多对多和一对多字段时,如果字段名称和model表多对多或者一对多的字段名称相同

2.6K20

经历了源码的痛苦,掌握DRF的核心序列化

序列化 序列化demo 字段类型 字段参数 序列化自定制返回字段 方法一:序列化类(serializers.py)写 方法二:表模型(models.py)写 反序列化序列化demo 反序列化之局部和全局钩子...----字典---json字符串 反序列化:json数据---字典----模型对象 导入:from rest_framework.serializers import Serializer 序列化 序列化...,默认False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段序列化时必须输入,默认True default 反序列化时使用的默认值...,可以使用,有两种方法 方法一:序列化类(serializers.py)写 '''serializer.py''' from rest_framework import serializers...get_字段的方法,来自定制字段 方法二:表模型(models.py)写 '''models.py''' from django.db import models # Create your models

78610

RESTframework_一

数据 总结 开发REST API ,视图操作 将数据库序列化为前端所需要的格式,并返回 将前端的数据反序列化为模型类对象,并保存到数据库 REST framework 特点: 提供了定义序列化器Serializer...的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化; 提供丰富的类视图,Mixin扩展类,简化视图的编写 丰富的定制层级:函数视图,类视图,视图集合到自动生成API,满足各种需要...添加rest_framework应用 setting.py ``` python INSTALLED_APPS = [ ......'rest_framework', ] ``` 序列化器 功能: 序列化操作: 将Python类型(模型类对象,模型类对象的列表)转换成字典 反序列化操作: 将json转换成字典 定义序列化器: 继承自...rest_framework.serializers.Serializer类 模型类 class BookInfo(models.Model): btitle = models.CharField

69920

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

DRF序列化和反序列化 定义序列化器 DRF中有serializer的类,我们可以从rest_framework进行导入。...from rest_framework import serializers 我们自定义的序列化器必须继承自 rest_framework.serializers.Serializer 现在假如我们有一个模型类...现在,我们views定义一个视图类,如下: class BookView(View): def get(self, request, *args, **kwargs): book_id...,默认False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段序列化时必须输入,默认True default 反序列化时使用的默认值 label...反序列化 保存 验证成功后,我们可以通过validated_data属性获取数据,拿到数据以后,可以通过序列化实现create()和update()两个方法来完成新增和修改操作。

1K10

Django序列化器的简单使用

,这个类必须继承rest_framework.serializer.Serializer 。...写需要序列化的字段,即需要序列化哪些字段就在类写哪个字段。为使代码清晰、方便管理,我们可以新建一个ser.py 文件来存储序列化器的代码。...简单定义代码如下所示: # ser.py from rest_framework import serializers # 声明序列化器,所有的序列化器都要直接或间接的继承于Serializer class...,默认False write_only 表明该字段仅用于反序列化输入,默认False required 表明该字段序列化时必须输入,默认True default 反序列化时使用的默认值 allow_null...如果是非字段错误,可以通过修改REST framework 配置的NON_FIELD_ERRORS_KEY 来控制错误字典的键名。

1.5K40
领券