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

相关文章

Java Exception异常类的继承体系详解

《JavaException异常类的继承体系详解》Java中的异常处理机制分为异常(Exception)和错误(Error)两大类,异常分为编译时异常(CheckedException)和运行时异常... 目录1. 异常类的继承体系2. Error错误3. Exception异常3.1 编译时异常: Che

Java序列化之serialVersionUID的用法解读

《Java序列化之serialVersionUID的用法解读》Java序列化之serialVersionUID:本文介绍了Java对象的序列化和反序列化过程,强调了serialVersionUID的作... 目录JavChina编程a序列化之serialVersionUID什么是序列化为什么要序列化serialV

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth

java反序列化serialVersionUID不一致问题及解决

《java反序列化serialVersionUID不一致问题及解决》文章主要讨论了在Java中序列化和反序列化过程中遇到的问题,特别是当实体类的`serialVersionUID`发生变化或未设置时,... 目录前言一、序列化、反序列化二、解决方法总结前言serialVersionUID变化后,反序列化失

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

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

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