APIView视图的序列化器继承ModelSerializser

2023-11-09 21:31

本文主要是介绍APIView视图的序列化器继承ModelSerializser,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


一、在serializser.py编写序列化器继承于ModelSerializser
from .models import Publishclass PublishSerializer(serializers.ModelSerializer):class Meta:model = Publishfields = "__all__"
二、在views.py编写类视图继承于APIView
from .models import Author, Publish
from .serializers import AuthorSerializer, PublishSerializerclass PublishView(APIView):def get(self, request):publishs = Publish.objects.all()  #获取所有数据serializer = PublishSerializer(instance=publishs, many=True)   #构建序列化器return Response(serializer.data)def post(self, request):serizlizer = PublishSerializer(data=request.data)    #反序列化器#数据校验#验证通过   serializer.data#验证不通过  serializer.errorsif serizlizer.is_valid():# Author.objects.create(**serializer.validated_data)   这种原始传入数据的方法# return Respons("OK")serizlizer.save()return Response(serizlizer.data)else:return Response(serizlizer.errors)class PublishDetailView(APIView):def get(self, request, pk):publish = Publish.objects.get(pk=pk)serializer = PublishSerializer(instance=publish,many=False)return Response(serializer.data)def put(self, request, pk):publish = Publish.objects.get(pk=pk)serializer = PublishSerializer(instance=publish, data=request.data)if serializer.is_valid():serializer.save()return Response(serializer.data)else:return Response(serializer.errors)def delete(self, request, pk):Publish.objects.get(pk=pk).delete()return Response()

三、在urls.py增加路由表
from .views import PublishView, PublishDetailViewurlpatterns = [path('publish/', PublishView.as_view()),re_path('publish/(?P<pk>\d+)/', PublishDetailView.as_view())
]

四、测试
get post
http://127.0.0.1:8000/stu/publishput delete get
http://127.0.0.1:8000/stu/publish/1/


 

这篇关于APIView视图的序列化器继承ModelSerializser的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/378528

相关文章

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

SpringBoot项目中Redis存储Session对象序列化处理

《SpringBoot项目中Redis存储Session对象序列化处理》在SpringBoot项目中使用Redis存储Session时,对象的序列化和反序列化是关键步骤,下面我们就来讲讲如何在Spri... 目录一、为什么需要序列化处理二、Spring Boot 集成 Redis 存储 Session2.1

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及