首页 > TAG信息列表 > ModelSerializer
DRF-序列化类Serializer的反序列化-局部和全局钩子-序列化类ModelSerializer的使用
不使用drf编写5个接口 1.1路由 urlpatterns = [ path('books/', views.BookView.as_view()), path('books/<int:pk>', views.BookDetailView.as_view()), ] 1.2视图类 # 图书新增:psot 图书查询所有:get class BookView(View): def get(self, request):Drf序列化组件 | Serializer | 模型类序列化器ModelSerializer具体使用
DRF序列化组件 # 作用: 1. 序列化,序列化器(类)会把模型对象(Book对象,Queryset对象)转换成字典,经过response以后变成json字符串 2. 反序列化,把客户端发送过来的数据,经过request以后变成字典(request.data),序列化器(类)可以把字典转成模型 3. 反序列化,完成数据校验功能 # 本质:Serializer 嵌套使用
class TeacherSerializer(ModelSerializer): """讲师序列化器""" class Meta: model = Teacher fields = [ 'name', 'brief' ] class CourseSerializer(ModelSerializer): &python测试开发django-rest-framework-84.序列化(ModelSerializer)之日期时间格式带T问题
前言 使用 django-rest-framework 序列化的时候,返回的日期时间格式带T,查看不方便,如update_time=2021-01-18T08:56:47.756971。 需格式化改成我们平常用的日期时间格式 update_time=2021-01-18 08:56:47 问题描述 返回的json数据,日期时间格式带T update_time: 2021-01-18T08:56:47python测试开发django-rest-framework-65.序列化(ModelSerializer)
前言 serializers.Serializer可以对modle模型中的字段序列化,并且必须写create和update两个方法。ModelSerializer可以看成是Serializer的一个升级版,功能更强大,更方便。 实际上ModelSerializer类继承了Serializer类。 ModelSerializer ModelSerializer类能够让你自动创建一个具有python测试开发django-rest-framework-93.反序列化(ModelSerializer)之UniqueTogetherValidator联合唯一校验
前言 前面添加商品,商品code只能添加一次可以用唯一字段校验UniqueValidator,如果用户收藏商品,一个用户可以收藏多个商品,一个商品也可以被多个人收藏。 但是同一个人针对同一个商品,只能收藏一次,于是可以用UniqueTogetherValidator联合唯一校验 收藏商品 添加商品和收藏商品 models.pModelSerializer 高级使用
前言 ModelSerializer中还具有一些高级用法,如批量更新、批量删除、批量创建等。 但是批量过来的数据格式都需要与前端做好协商,什么样的数据格式是单条操作,什么样的数据格式是批量操作。 如下,对于单条操作而言,只需要传入编号即可,而批量操作则需要在请求体中传入[]以ModelSerializer自定义验证逻辑
ModelSerializer字段验证序列化 # -*- coding: utf-8 -*- from rest_framework import serializers from user.models import User def address_validate(data): # 独立校验器 # raise serializer.ValidationError(‘请填写实际地址’) # 有错就抛出异常 # 没错就返回(生鲜项目)19. ViewSet实现商品详情页接口
第一步: 前期分析 1.商品详情页包括轮播图,详情,富文本 2.对于轮播图这种有多个值的外键, 应该再另外设计一个serializer表 3.写代码, 代码很简单 goods.views.py # RetrieveModelMixin的功能是帮我们完成url的配置, /goods/id, 通过输入id就可以拿到某个商品的详情 class GoodsLdrf的序列化和反序列化
序列化器--Serializer 选项参数: max_length 最大长度 min_length 最小长度 allow_blank 是否允许为空 trim_whitespace 是否截断空白字符 max_value 最小值 min_value 最大值 通项参数 read_only 该字段仅用于序列化输出,默认false write_only 该字段仅用于反序列化输入,默认falseModelSerializer 和 serializers
serializers序列化:普通字段 # 一.定义一个反序列的类 from rest_framework import serializers from rest_framework.response import Response # 为queryset, model对象做序列化,只要你定义了name和addr我都能给你反序列化 class PublishSerializers(serializers.Serializer):序列化模块ModelSerializer上补充及ListSerializer
整体单改 路由层、模型层、序列化层不需要做修改,只需要处理视图层:views.py """1) 单整体改,说明前台要提供修改的数据,那么数据就需要校验,校验的数据应该在实例化“序列化类对象”时,赋值给data2)修改,就必须明确被修改的模型类对象,并在实例化“序列化类对象”时,赋值给instance3)整体修drf框架 - 序列化组件 | ModelSerializer
ModelSerializer 序列化准备: 配置 settings.py # 注册rest_framework框架INSTALLED_APPS = [ ... 'rest_framework']# 配置mysql数据库DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAMEModelSerializer
通过Serializer的用法,会发现我们所有的序列化跟我们的模型都紧密相关 DRF也给我们提供了跟模型紧密相关的序列化器~~ModelSerializer -- 它会根据模型自动生成一组字段 -- 它简单的默认实现了.update()以及.create()方法 定义一个ModelSerializer序列化器ModelSerializer反序列化和序列化
class BookSerializer(serializers.ModelSerializer): category_display = serializers.SerializerMethodField(read_only=True) publisher_info = serializers.SerializerMethodField(read_only=True) authors = serializers.SerializerMethodField(read_only=True)Django REST Framework(一) Serializer和ModelSerializer
REST Framework概述 Django REST framework是一套基于Django的REST框架,是一个用于构建Web API的功能强大且灵活的工具包。 1.RESTful 简述Representational State Transfer(REST),是一种架构样式,定义了一套用于创建WEB服务的约束。当前WEB开发趋势就是前端层出不穷,为了保证一个后drf序列化组件
restful规范:前后端分离:前端一个项目,后端一个项目 1:通常使用HTTPS协议 2.域名部署 api.baidu.com www.baidu.com/api 3.版本 www.baidu.com/api/v2 版本号放在请求头中 4.路径都是名词(可以用复数) 5.根据不同的请求方式,执行不同的操作 delete删除 put和patch