文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Serializer和ModelSerializer如何使用

2023-06-02 06:13

关注

这篇文章主要为大家展示了“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如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯