返回顶部
首页 > 资讯 > 精选 >Serializer和ModelSerializer如何使用
  • 939
分享到

Serializer和ModelSerializer如何使用

2023-06-02 06:06:53 939人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“Serializer和ModelSerializer如何使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Serializer和ModelSerializer如何使用”

这篇文章主要为大家展示了“Serializer和ModelSerializer如何使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Serializer和ModelSerializer如何使用”这篇文章吧。

Django REST Framework api返回结果解析

学习了之前的文章我们知道如何使用DjanGo REST framework框架设计API,我还使用Schools APP设计了一个API

Serializer和ModelSerializer如何使用

除此之外,我们还可以查看API的OPTioNS,然后可以得很多信息,比如说第一行请求行’Http 200 OK’,表示请求成功,第二行Allow表示允许的请求方式,Content-Type:application/JSON表示发送端发送的实体数据的数据类型。
还有下面的json数据,name表示接口名字、description详细描述、renders表示可解析的形式,parses是服务器端可解析的三种方式

Serializer和ModelSerializer如何使用

我们还可以在app的views.py的类中可以给API添加注释,如比给前端人员的接口说明等信息,且注释可以在Django REST Framework的页面中显示;

class AllSchoolsView(APIView):    """    这是AllSchoolsView的返回结果    """    def get(self, request):        schools = School.objects.all()        schools_serializer = SchoolSerializer(schools, many=True)        return Response(schools_serializer.data)

然后重新运行项目,然后刷新页面,我们就可以得到如图的效果:

Serializer和ModelSerializer如何使用

Django REST Framework的登录

首先为了避免在Django REST Framework 中登录时报错'CSRFCheck' object has no attribute 'process_request',我们需要将Django升级到1.11.6以上的版本:pip install django==1.11.6,记得是两个等号哟。然后用户就可以使用之前创建的超级用户成功登录了

Serializer和ModelSerializer如何使用

Restful API的方法

GET(SELECT):从服务器取出资源(一项或多项);

POST(CREATE):在服务器新建一个资源;

PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源);

PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性);

DELETE(DELETE):从服务器删除资源;

HEAD:获取资源的元数据;

OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的;

实现POST接口

首先编辑serializer.py文件,将SchoolSerializer类中的字段与School表中的字段一一对应,保证数据库写入不会报错;

from rest_framework import serializersfrom .models import Schoolclass SchoolSerializer(serializers.Serializer):    name = serializers.CharField()    desc = serializers.CharField()    location = serializers.CharField()    create_time = serializers.DateTimeField(default=datetime.now,)    course_numbers = serializers.IntegerField()    def create(self, validated_data):        """        Create and return a new `Snippet` instance, given the validated data.        """        return School.objects.create(**validated_data)

然后编辑views.py文件,修改AllSchoolsView类,新增一个post提交方法,在代码中打上断点;

from rest_framework.views import APIViewfrom .serializer import SchoolSerializerfrom rest_framework.response import Responsefrom rest_framework import statusclass AllSchoolsView(APIView):    """    这是AllSchoolsView的返回结果    """    def get(self, request):        schools = School.objects.all()        schools_serializer = SchoolSerializer(schools, many=True)        return Response(schools_serializer.data)    def post(self, request):        # 将request.data的数据进行校验        # request.data会拿到post提交的字段        serializer = SchoolSerializer(data=request.data)        # 如果验证字段合法        if serializer.is_valid():            # 直接保存到数据库,这里会调用GoodsSerializer的create方法            serializer.save()            return Response(serializer.data, status=status.HTTP_201_CREATED)        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

然后可以使用postman进行提交请求,先在Body中选择x-www-fORM-urlencoded的提交方式,然后填写好相应字段的值

Serializer和ModelSerializer如何使用

然后发送send,在post方法中把得到的数据封装且进行序列化,返回到序列化对象serializer中,最后通过save方法保存到数据库中,然后我们访问http://127.0.0.1:12345/school/all/,得到的数据是不是增加了一条新的记录呀

Serializer和ModelSerializer如何使用

还可以直接在浏览器的页面中进行post请求,先选择提交格式,然后创建相应数据,直接点击POST,如果返回HTTP 201 Created,则数据已经被创建,写入了数据库中;

Serializer和ModelSerializer如何使用

Serializer和ModelSerializer如何使用

Serializer和ModelSerializer如何使用

以上是“Serializer和ModelSerializer如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Serializer和ModelSerializer如何使用

本文链接: https://lsjlt.com/news/229157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Serializer和ModelSerializer如何使用
    这篇文章主要为大家展示了“Serializer和ModelSerializer如何使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Serializer和ModelSerializer如何使用”...
    99+
    2023-06-02
  • 如何使用ModelSerializer和Mixin
    这篇文章主要介绍如何使用ModelSerializer和Mixin,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用serializers.ModelSerializer之前我们学了serializers模块中Ser...
    99+
    2023-06-02
  • drf序列化器serializer的具体使用
    目录一、序列化器-serializer二、序列化器的使用简单使用高级使用source**SerializerMethodField( ) **通用参数三、反序列化数据校验字段属性局部...
    99+
    2024-04-02
  • 如何使用localStorage和sessionStorage
    这篇文章主要介绍了如何使用localStorage和sessionStorage,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、什么是lo...
    99+
    2024-04-02
  • Node.js和Express如何使用
    本篇文章为大家展示了Node.js和Express如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、 Nodejs简介 ==Node是JavaScript语...
    99+
    2024-04-02
  • 如何使用@DateTimeFormat和@NumberFormat
    本篇内容介绍了“如何使用@DateTimeFormat和@NumberFormat”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
  • ConcurrentLinkedQueue和LinkedBlockingQueue如何使用
    今天就跟大家聊聊有关ConcurrentLinkedQueue和LinkedBlockingQueue如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Java多线程应用中,队...
    99+
    2023-06-19
  • Promise.race和Promise.any如何使用
    本文小编为大家详细介绍“Promise.race和Promise.any如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Promise.race和Promise.any如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-04
  • np.hstack()和np.dstack()如何使用
    这篇文章主要介绍“np.hstack()和np.dstack()如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“np.hstack()和np.dstack()如何使用”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • SSDB如何安装和使用
    这篇文章给大家分享的是有关SSDB如何安装和使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。介绍:SSDB是一个高性能的支持丰富数据结构的 NoSQL 数据库, 使用硬盘存储,...
    99+
    2024-04-02
  • Trac如何安装和使用
    小编给大家分享一下Trac如何安装和使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装介绍:  根据官网的介绍可以...
    99+
    2024-04-02
  • 如何安装和使用LumaQQ
    本篇内容介绍了“如何安装和使用LumaQQ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、LumaQQ是什么  LumaQQ 是luma...
    99+
    2023-06-10
  • 如何安装和使用MobaXterm
    如何安装和使用MobaXterm?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。安装安装完成后如下图如果遇到这个问题,直接点Ignore就可以进入了。。。登陆  1 单击左上...
    99+
    2023-06-15
  • 如何安装和使用vray3.6
    如何安装和使用vray3.6?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。鼠标选中【VRay3.6 for 3DMAX2018】压缩包,右键选择【解压到VRay3.6 for ...
    99+
    2023-06-15
  • 如何安装和使用Sparta
    这篇文章将为大家详细讲解有关如何安装和使用Sparta,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Sparta是一款kali linux的系统本身集成的Python GUI应用程序工具。Sparta是一...
    99+
    2023-06-28
  • 如何安装和使用Gixy
    这篇文章主要介绍了如何安装和使用Gixy,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Gixy 是一款用来分析 Nginx 配置的工具。 Gixy 的主要目标是防止安全配置错...
    99+
    2023-06-28
  • 如何安装和使用pip
    这篇文章主要为大家展示了“如何安装和使用pip”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何安装和使用pip”这篇文章吧。pip 是一个现代的,通用的 Python 包管理工具。提供了对 P...
    99+
    2023-06-28
  • behaviors如何创建和使用
    这篇文章主要讲解了“behaviors如何创建和使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“behaviors如何创建和使用”吧!什么是 behaviorsbehaviors 是小程序...
    99+
    2023-06-29
  • Vuls如何安装和使用
    这篇文章主要介绍了Vuls如何安装和使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Vuls 是一款适用于 Linux / FreeBSD 的漏洞扫描程序,无代理,采用 g...
    99+
    2023-06-27
  • python如何使用Arange和Linspace
    这篇文章主要介绍了python如何使用Arange和Linspace,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Arange和LinspaceArange返回给定步长的等差...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作