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

相关文章

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

架构全景视图

文章目录 一、战略规划二、业务架构Business Architecture2.1业务架构定义2.2 业务架构组成2.3 TOGAF2.3.1 Archimate建模(重要) 三、数据架构Data Architecture3.1 数据架构定义3.2 数据架构组成 四、应用架构Application Architecture4.1 应用架构定义4.2 应用架构组成 五、技术架构Technol

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

Python---文件IO流及对象序列化

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 前文模块中提到加密模块,本文将终点介绍加密模块和文件流。 一、文件流和IO流概述         在Python中,IO流是用于输入和输出数据的通道。它可以用于读取输入数据或将数据写入输出目标。IO流可以是标准输入/输出流(stdin和stdout),也可以是文件流,网络流等。

2409wtl,切换视图

原文 介绍 我从一个基于SDI(单文档接口)WTL向导的应用开始,添加了一些从控件继承的窗口和一些对话框窗口(表单视图),然后才发现我必须,使SDI框架动态加载和卸载子窗口. 本文演示了两个可用来完成的技术:在SDI应用中的视图间动态切换.这是我使用的两个. 技术 1技术:第一个方法涉及按需析构和重建视图实例.这更简单,且在不介意析构和重建窗口对象时效果很好. 2:按需创建视图,然后用

jquery 表单序列化

jQuery序列化表单的方法总结 现在这里贴出案例中静态的html网页内容: <!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><title>Title</title><script src="../js/jquery-3.2.1.js"></script></head><body><form method="post"

Java反序列化漏洞-TemplatesImpl利用链分析

文章目录 一、前言二、正文1. 寻找利用链2. 构造POC2.1 生成字节码2.2 加载字节码1)getTransletInstance2)defineTransletClasses 2.3 创建实例 3. 完整POC 三、参考文章 一、前言 java.lang.ClassLoader#defineClass defineClass可以加载字节码,但由于defineClas

Spring之——整合Redis序列化方式StringRedisSerializer、FastJsonRedisSerializer和KryoRedisSerializer

当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedisTemplate默认使用的是StringRedisSerializer。 Spring Data JPA为我们提供了下面的Serializ