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

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

json数据---字典----模型对象 导入:from rest_framework.serializers import Serializer 序列化 序列化demo 在app中新建serializer.py...instance和many的使用,instance是要序列化的对象,一般从数据库中获取到的,many=True代表要序列化多个对象,如果是单个对象就等于False 序列化器中不要写max_length等参数...,反序列化验证字段用 在对BookSerializer类实例化传入的参数不知道传什么,由于我们没有写构造函数,去父类看需要什么参数传什么就可以了 使用浏览器测得时候一定要注册rest_framework...最小长度(CharField) allow_blank 是否允许为空(CharField) trim_whitespace 是否截断空白字符(CharField) max_value 最小值...value 在序列化类中写需要搭配get_字段的方法,来自定制字段 方法二:在表模型(models.py)中写 '''models.py''' from django.db import models

83910

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

如果是非字段错误,可以通过修改REST framework配置中的NON_FIELD_ERRORS_KEY来控制错误字典中的键名。...', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', # 把drf框架注册到...此时,就可以使用序列化器的反序列化器,接下来,定义一个图书的序列化器,此序列化器主要用于反序列化器阶段,在unsers子应用,创建serializers.py,代码如下 from rest_framework...4、validate验证 在序列化器中需要同时对多个字段进行比较验证时,可以定义validate方法来验证 def validate(self, data): """验证多个字段时,方法名必须为...最大长度[适用于字符串,列表,文件] min_lenght 最小长度[适用于字符串,列表,文件] allow_blank 是否允许数据的值为空,如果使用这个选项,则前端传递过来的数据必须有这个属性。

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

    Django序列化器的简单使用

    反序列化,完成数据的校验功能 为方便理解后面序列化器中的字段,我们先在创建的APP中的models.py 建立一个数据库模型类。...,这个类必须继承rest_framework.serializer.Serializer 。...在类中写需要序列化的字段,即需要序列化哪些字段就在类中写哪个字段。为使代码清晰、方便管理,我们可以新建一个ser.py 文件来存储序列化器的代码。...如果是非字段错误,可以通过修改REST framework 配置中的NON_FIELD_ERRORS_KEY 来控制错误字典中的键名。...5、模型类序列化器 如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。

    1.6K40

    Django REST Framework-信号

    一、概述Django REST Framework(DRF)中的信号(Signals)是一种非常有用的机制,可以让我们在某些重要的事件发生时执行一些自定义的代码。...二、什么是信号信号是Django中的一个概念,用于处理某些重要的事件发生时执行自定义的代码。DRF扩展了Django的信号系统,添加了一些新的信号,使我们可以更好地处理API相关的事件。...在请求处理过程中的某些特定时间点执行某些操作,如请求前、请求后、异常处理等。DRF提供了多个信号,可以通过导入django.dispatch.Signal来访问这些信号。...以下是一个简单的示例,演示如何在对象保存时执行某些操作:from django.db.models.signals import post_savefrom django.dispatch import...以下是一个示例,演示如何在请求前记录请求日志:from django.dispatch import receiverfrom rest_framework import signals@receiver

    7.2K101

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

    一是 action 装饰器,它用来装饰一个视图集中的方法,被装饰的方法会被 django-rest-framework 的路由自动注册为一个 API 接口。...django-rest-framework 默认只能识别标准命名的视图集方法并将其注册为 API,但我们可以添加更多非标准的 action,而为了让 django-rest-framework 能够识别这些方法...而这个接口中只需要序列化一个时间字段(类型为 Python 标准库中的 datetime.date),所以没必要单独定义一个序列化器了,直接拿 django-rest-framework 提供的用于序列化时间类型的...接着我们在接口返回一个 Response, Response 将序列化后的结果包装返回(保存在 data 属性中),django-rest-framework 会进一步帮我们把这个 Response 中包含的数据解析为合适的格式...由于 PostViewSet 视图集已经通过 django-rest-framework 的路由进行了注册,因此 list_archive_dates 也会被连带着自动注册为一个接口。

    2.6K30

    你知道前后端分离开发的原理吗?

    前后端分离原理 Django Rest Framework,简称DRF,中文意思是“Django表述状态转化框架”,是一款功能强大、基于Django框架开发的、用于构建符合RESTful风格Web API...Django的Rest Framework前后端分离实现原理如图1所示。...值得注意的是,REST并不是一个明确的标准,而更像一种设计风格。符合REST风格的架构方式就是RESTful。 1.数据资源与URL REST需要表述的是数据资源,包括数据库中的记录、各种文件等。...2.统一资源接口 有了数据资源和访问地址后,RESTful为浏览器端的访问提供了4种常用HTTP标准访问方式,用于传递数据。 GET:从服务器端获取数据资源。 POST:在服务器端建立一个数据资源。...本书基于Django 3.0.7版本、Python 3.8.5版本、Rest Framework 3.11.1版本、Vue.js 2.6.10版本、数据库MySQL 80版本进行讲解。

    86910

    DRF框架学习(二)

    3.DRF框架 作用:大大提高RestAPI接口开发效率 简介: Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。...Django框架学习中创建的demo工程,在settings.py的INSTALLED_APPS中添加’rest_framework’。...3.2见识DRF的魅力 我们仍以在学习Django框架时使用的图书英雄为案例,使用Django REST framework快速实现图书的REST API。 3.2.1....default 我们在使用序列化和反序列化时使用的默认值 allow_null 表明该字段是否允许传入None,默认False help_text、label_text 可以理解为注释,在web直观显示的时候有一个显示信息...4.4序列化的定义 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。

    4.1K30

    django-rest-framewor

    源码繁琐,多说无益,耐心细读官方文档: https://www.django-rest-framework.org/ 个人总结: REST是一种软件架构设计风格,不是标准,也不是具体的技术实现,只是提供了一组设计原则和约束条件...DRF(Django RestFramework)是一套基于Django开发的、帮助我们更好的设计符合REST规范的Web应用的一个Django App,所以,本质上,它是一个Django App。...2 解析器组件 (用来解析数据的请求的组件)   Django并不能处理请求协议为application/json编码协议的数据   注意: DRF解析器会封装到View中的parsers内,在视图函数被调用时...程序启动,开始初始化,获取配置信息,获取视图类并加载到内存中,获取url及视图类的对应关系 开始绑定视图类和url的对应关系,执行as_view()方法 as_view()方法被执行的时候传递了参数,为字典形式...:     注意:若需要返回数据,请在最后一个认证类中返回,因为在前面返回,self.authentication()方法中会对返回值进行判断,若不为空,认证的过程就会终止.

    1.6K10

    drf的接口文档生成与管理

    REST_FRAMEWORK = {...文档路由对应的视图配置为rest_framework.documentation.include_docs_urls 配置url主路由,其中参数title为接口文档网站的标题 from rest_framework.documentation...的 下面记录在drf中通过swagger生成接口文档的具体实现流程,参考drf swagger文档 3.2 安装django-rest-swagger库 pip3 install django-rest-swagger...2.0规范的API文档自动化生成工具,能够生成比原生swagger更为友好的API文档界面 目前的兼容性如下 Django Rest Framework: 3.10, 3.11, 3.12 Django...允许接受的非位置参数, 如 cache(指定 cache backend), key_prefix(缓存key的前缀) 等等, 详见django官方文档 需要注意的是, 由于 drf-yasg 支持针对不同用户返回不一样的

    4.8K10

    mezzanine,一个无敌的 Python 库!

    # 文件上传通常通过Mezzanine的管理界面进行,以下是如何在代码中引用已上传的文件 from mezzanine.core.models import File # 获取并显示所有已上传的文件...API集成 Mezzanine可以通过第三方库如Django REST framework集成RESTful API,使得网站数据可以通过API进行访问和管理。...# 在Django的settings.py中添加rest_framework到INSTALLED_APPS INSTALLED_APPS += ('rest_framework',) # 创建一个API...视图 from rest_framework.views import APIView from rest_framework.response import Response from mezzanine.pages.models...此外,其内置的多站点支持和SEO优化工具进一步增强了其在现代网站开发中的应用范围。Mezzanine是为那些寻求在Python环境中快速部署专业级网站和应用的开发者和组织的理想选择。

    19210
    领券