首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django rest_framework实现增删改查接口

    目录 Django rest_framework实现增删改查接口 写接口前的知识准备 __all__的使用方法 序列化类配置 Response二次封装 连表深度查询 单查群查接口 单删群删接口 单增,群增接口...整体单改群改接口 局部修改数据 视图给序列化传参 Django rest_framework实现增删改查接口 本文使用Django的rest_framework框架的ModelSerializer模块和...写接口前的知识准备 __all__的使用方法 在默认情况下,如果使用“from 模块名 import *”这样的语句来导入模块,程序会导入该模块中所有不以下画线开头的成员(包括变量、函数和类)。...__all__,显示所以字段 Response二次封装 对rest_framework的Response类进行二次封装可以按照我们自己的要求去定义response的功能。...class BookModelSerializer(serializers.ModelSerializer): # 外键字段默认显示的是外键值(int类型),不会自己进行深度查询 # 深度查询方式

    2.3K20

    Django REST 框架详解 04 | 序列化与反序列化及二者整合

    serializes.py from rest_framework import serializers from rest_framework.exceptions import ValidationError...from rest_framework.fields import SerializerMethodField from rest_framework.serializers import ModelSerializer...# 注意:调用时有加载顺序,PublishModelSerializer >> PublishModelSerializer # 这里通过 book 中 publish 的外键,提数据...def validate(self, attrs): # 同一出版社不能出版同一本书 publish = attrs.get('publish') # 这里的外键已经变成对象...三、序列化与反序列的整合 从数据的安全性和健壮性来考虑,所有的自定义字段不能与 model 的原字段相同 因为序列化是将外键字段作为 Dict,而反序列化会将外键字段作为 Object 1.视图 views.py

    1.2K10

    DRF中多对多ManytoMany字段的更新和添加

    orderId 是自动生成的UUID订单的区域是外键,下单人也是外键,菜品orderMenu是一个多对多字段(其实通过我查到的方法说的都是外键字段就可以实现但是个人觉得菜品和订单应该是多对多会比较好理解...serializer.py# serializer.pyfrom rest_framework import serializers# 用于读取OrderCenterclass ReadOrderCenterSerializer...查找外键表传入查找的字段并用data序列话出来 reason = OrderCenterThoughSerializer(instance.ordercenterthough_set.get...接下来是定义视图 views.pyfrom rest_framework import viewsets, statusfrom .serializers import ReadOrderCenterSerializer...CREATED, headers=headers)总结:具体的作用已经写在上面的代码注释中,在写的时候又发现了代码中的几个bug1、可以更新不是订单人的菜品2、更新的时候只能更新已经生成的菜品内容,因为无法为订单添加新的菜品

    97020

    DRF框架学习(二)

    把其他格式的数据转换为程序中数据结构类型,这个过程叫做反序列化的过程。 例:将前端传递的数据保存到模型对象中的过程,叫做反序列化过程。...'rest_framework', ] 接下来就可以使用DRF进行开发了。...3.2见识DRF的魅力 我们仍以在学习Django框架时使用的图书英雄为案例,使用Django REST framework快速实现图书的REST API。 3.2.1....作用:进行数据的序列化和反序列化 序列化:把对象转换为字典 反序列化:数据校验;数据保存(可以利用这一点实现新增和更新); 4.1使用 定义一个序列化器类 serializers.Serializer...4.4序列化的定义 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。

    4.1K30

    【愚公系列】2022年04月 Python教学课程 77-DRF框架之异常

    验证错误的处理方式略有不同,并且将在响应中包含字段名称作为键。如果验证错误不是特定于特定字段的,则它将使用“non_field_errors”键,或者为该设置设置设置的任何字符串值。...异常处理程序函数应返回对象,如果无法处理异常,则应返回。如果处理程序返回,则将重新引发异常,Django将返回标准的HTTP 500“服务器错误”响应。...还必须使用设置键在设置中配置异常处理程序。...如果未指定,则该设置默认为 REST 框架提供的标准异常处理程序: REST_FRAMEWORK = { 'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler...它不会用于视图直接返回的任何响应,例如在序列化程序验证失败时由泛型视图返回的响应。HTTP_400_BAD_REQUEST

    1.1K40

    Django REST framework+Vue 打造生鲜超市(四)

    django的serializer虽然可以很简单实现序列化,但是有几个缺点 字段序列化定死的,要想重组的话非常麻烦 从上面截图可以看出来,images保存的是一个相对路径,我们还需要补全路径,而这些drf...都可以帮助我们做到 以上写了这么多只是为了引入django rest framework和简单介绍django的序列化用法,下面就是重点讲解django rest framework了 5.3.APIview...category只显示分类的id,Serialzer还可以嵌套使用,覆盖外键字段 # goods/serializers.py from rest_framework import serializers...fields = "__all__" #ModelSerializer实现商品列表页 class GoodsSerializer(serializers.ModelSerializer): #覆盖外键字段...ViewSets和Routers结合使用  MxShop/yrls.py from goods.views import GoodsListViewSet from rest_framework.routers

    4.8K90

    构建强大的API-Django中的REST框架探究与实践

    Django REST框架允许我们使用异步视图和性能优化技术来提高应用程序的性能和可扩展性。异步视图在处理I/O密集型任务时,使用异步视图可以提高性能和并发能力。...例如,使用缓存来减轻数据库负载,使用性能调优工具来识别并优化慢查询,以及使用负载均衡和水平扩展来提高应用程序的可扩展性。12....数据序列化与性能优化在处理大量数据时,有效地序列化和反序列化数据对性能至关重要。Django REST框架提供了丰富的序列化和性能优化功能,可以帮助我们提高应用程序的性能和效率。...数据序列化通过使用序列化器,我们可以将复杂的数据结构转换为简单的JSON格式,并进行序列化和反序列化操作。...例如,我们可以使用适当的缓存键(cache key)来确保缓存的唯一性,避免缓存雪崩和缓存击穿等问题。

    40820

    【愚公系列】2022年04月 Python教学课程 68-DRF框架之五个扩展类视图

    from rest_framework.response import Response from rest_framework.mixins import ListModelMixin, CreateModelMixin..., RetrieveModelMixin, UpdateModelMixin,DestroyModelMixin from rest_framework.generics import GenericAPIView...请注意,mixin 类提供操作方法,而不是直接定义处理程序方法,例如 和 。这允许更灵活的行为组合。.get().post() mixin 类可以从 中导入。...rest_framework.mixins 1、ListModelMixin 提供一个方法,该方法实现列出查询集。....create(request, *args, **kwargs) 如果创建了一个对象,这将返回一个响应,并将该对象的序列化表示形式作为响应的主体。如果表示形式包含名为 的键,则响应的标头将填充该值。

    58420

    django-rest-framework框架学习

    在django中很著名的一个框架是django-rest-framework,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要的格式帮了我们省了很多事 在这里就记录一下个人的学习过程 django-rest-framework...api类,只需要继承rest_framework中generics中的某个类,重写我们需要的方法实现合适的逻辑即可 在urls.py中配置所需要的url 一组api的demo 创建一个model 在创建好的...官方文档:http://www.django-rest-framework.org/api-guide/serializers/ 创建serializers.py在其中实现序列化类 由于这个序列化是和我们的模型想对应的相关...math = models.FloatField() english = models.FloatField() chiness = models.FloatField() 我们在这里没有使用外键...,毕竟现在很多大牛说不使用外键,在应用中控制逻辑嘛 当然这里也可以使用models.ForeignKey,会让操作变得更简单的一点 serializers.py为: from rest_framework

    1.3K10
    领券