Django 中 restframework 配置与增删改查操作

Django 中 restframework 配置以及增删改查操作

[TOC]
关于student的模型已建好的情况下,建模请查看我的博客[Django创建项目的基本流程 虚拟环境的创建 setting中的相关匹配置 媒体静态文件的配置以及数据库与模型的配置]:https://mp.csdn.net/mdeditor/81261764

安装

pip install djangorestframework
pip install django-filter

setting中的配置:在工程目录中的settings.py文件的INSTALLED_APPS中需要添加rest_framework

定义url
这里写图片描述

导入相关的信息:

from rest_framework import mixins, viewsets

这里StudentsEdit视图代码如下

from stu.serializers import StudentSerializer
class StudentsEdit(  mixins.ListModelMixin,
                     mixins.RetrieveModelMixin,
                     mixins.UpdateModelMixin,
                     mixins.DestroyModelMixin,
                     mixins.CreateModelMixin,
                     viewsets.GenericViewSet):
    #查询所有信息
    queryset = Student.objects.all()
    #序列化
    serializer_class = StudentSerializer

mixins.ListModelMixin 查询全部信息 GET请求
mixins.RetrieveModelMixin 查询部分信息 GET请求
mixins.UpdateModelMixin为更新 put 要提前提交全部信息 PUTCH 更新部分信息
mixins.DestroyModelMixin 删除 DELETE 请求
mixins.CreateModelMixin 增加 POST请求

如果不添加这些字段,就无法达到你想要的功能。

这里 序列化的中间件serializers.py 文件 如下代码:

#虚拟化 接口返回数据的格式
class StudentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Student
        fields =['s_name','s_tel']

之后我们在StudentSerializer中加上如下代码,对地址进行虚拟化:

    def to_representation(self, instance):

        data =super().to_representation(instance)
        try:
            data['s_addr'] =instance.studentinfo.i_addr
        except Exception as e:
            data['addr']=''

postman实验:

查询全部信息:

这里写图片描述

查询部分信息
这里写图片描述

修改信息并保存,将访问方式选择为PATCH,选中body,将key为2的value改为妮妮,点击send,效果如下:
这里写图片描述

代表修改数据成功,并将访问方式改为get查询,名字也被改为妮妮。

删除数据,将访问方式改为delete,点击send,结果如下:

这里写图片描述
返回数据为空,代表数据删除成功,这时在用get方式访问,会出现如下字段:

{
    "detail": "Not found."
}

如若访问全部数据,就不会再有id为2的这栏数据了。

增加数据,将访问方式改为POST,将body中key增加s_name和s_tel字段,其value值分别为:花花,14878996588。点击send,效果如下:

这里写图片描述

后再将方式改为get,显示全部信息,就会多出相应的数据。

这所有操作也可访问浏览器端,效果如下,结果不一一展示了。:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Lq_520/article/details/81390875