首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DRF框架学习(二)

2.明确RestAPI接口实现时的主要工作 2.1序列化&反序列化 把程序中的数据结构类型转换为其他格式的数据,这个过程叫做序列化的过程 例:将模型类对象转换为字典或者json数据的过程,就叫做序列化的过程...把其他格式的数据转换为程序中数据结构类型,这个过程叫做反序列化的过程。 例:将前端传递的数据保存到模型对象中的过程,叫做反序列化过程。...2.2RestAPI接口核心的工作: 把数据库数据序列化为前端所需要的格式,并返回。 把前端发送的数据反序列化为模型类对象,并保存到数据库中。...的路由列表中 4.Serializer序列化器 作用:进行数据的序列化和反序列化 序列化:把对象转换为字典 反序列化:数据校验;数据保存(可以利用这一点实现新增和更新); 4.1使用 定义一个序列化器类...4.5序列化功能(重点掌握) 把实例对象转换为字典数据 知识点: 1、序列化单个对象 2、序列化多个对象 3、关联对象的嵌套序列化 1)将关联对象序列化为关联对象的主键 # 在英雄类(多)中添加 hbook

4.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django&DRF重点内容大盘点

    使用Django框架提供method_decorator将针对函数视图装饰器添加到类视图的方法上面 # 为全部请求方法添加装饰器 @method_decorator(my_decorator, name...使用 1)在配置文件中设置配置项MEDIA_ROOT='上传文件的保存目录' 2)定义模型类时,图片字段的类型使用 ImageField 3)迁移生成表并在admin.py注册模型类,直接登录Admin...1.将数据库数据序列化为前端所需要的格式,并返回 2.将前端发送的数据反序列化为模型类对象,并保存到数据库中 2.4DRF框架 2.4.1作用:大大提高RestAPI接口开发效率 2.5序列化器Serializer...(label='图书') 注意:和对象关联的对象如果有多个,在序列化器中定义嵌套序列化字段时,需要添加many=True。...-数据保存(新增&更新) 校验通过之后,可以调用 serializer.save()进行数据保存 1)数据新增 def create(self,validated_data): """

    5.9K20

    ​从入门到精通Django REST Framework-(三)

    与 Django ORM 紧密集成: ModelSerializer 与 Django 的 ORM 数据模型集成非常紧密,能够直接操作 Django 数据库模型,并且支持字段验证和嵌套序列化。...核心配置 Meta 类详解ModelSerializer 中最重要的部分是 Meta 类,以下是 Meta 类常见字段及其用法。1. model作用:指定要与序列化器关联的 Django 模型。...高级技巧嵌套序列化对于有外键关系的模型,可以使用嵌套序列化器进行序列化。...常见问题如何处理外键和多对多关系的序列化? 使用嵌套的 ModelSerializer 来处理外键关系(ForeignKey),可以通过 depth 或者手动嵌套序列化器来实现多对多关系。...生产技巧1.性能优化对于大数据量的序列化,尽量避免使用深度过大的嵌套序列化,可以使用 depth 控制递归深度,或者使用自定义嵌套序列化器来减少不必要的嵌套。

    3300

    django-rest-framewor

    (直接在官网下载即可) 3 序列化组件    序列化组件的使用:   --get接口设计: 导入序列化组件:from rest_framework import serializers 定义序列化类,...,many默认为False,如果返回的数据是一个列表嵌套字典的多个对象集合,需要改为many=True 返回:将序列化对象的data属性返回即可  {{ 实践代码 }} --post接口设计 url...data=request.data(application/json)数据 校验数据:通过实例对象的is_valid()方法,对请求数据的合法性进行校验 保存数据:调用save()方法,将数据插入数据库...程序启动,开始初始化,获取配置信息,获取视图类并加载到内存中,获取url及视图类的对应关系 开始绑定视图类和url的对应关系,执行as_view()方法 as_view()方法被执行的时候传递了参数,为字典形式...返回结果 5 认证组件   cookie和session两种方式可以保存用户信息,这两种方式不同的是cookie保存在客户端浏览器中,而session保存在服务器中,他们各有优缺点,配合起来使用,可将重要的敏感的信息存储在

    1.6K10

    重点内容回顾-DRF

    class 序列化器类名(serializers.Serializer): # 字段名 = serializer.字段类型(选项参数) 如果我们想要使用序列化器对应的是Django的模型类,那么可以继承自...5.4.3序列化功能 将实例对象转换为字典数据: a.序列化单个对象。 b.序列化多个对象。(其实就是在序列化单个对象的基础上多加了一个参数many=True) c.关联对象的嵌套序列化。...注意:校验通过之后,要调用 serializer.save()进行数据的保存。 5.5视图类 5.5.1功能 1.使用序列化器(数据校验,数据保存,数据的序列化)。 2.进行数据库的相关查询。...request.data保存的是解析之后的请求体的数据,并且已经解析成了字典或类字典,相当于包含Django原始request对象中的request.body/request.POST/request.FILES...request.query_params保存解析之后的查询字符串的数据,并且已经解析成了字典或类字典,相当Django原始request对象中的request.GET 2.响应时可以统一返回Response

    2.5K20

    测试开发进阶(二十四)

    project_qs = Projects.objects.all() # 2.将数据库模型实例转化为字典类型「Json数组」「嵌套字典的列表」 project_list...原始设计小结 创建接口的任务 校验用户数据 将请求的数据(如json格式)转换为模型类对象 反序列化 将其他格式(json,xml等)转换为程序中的数据类型 将json格式的字符串转换为Django中的模型类对象...操作数据库 将模型类对象转换为响应的数据(如json格式) 序列化 将程序中的数据类型转换为其他格式(json,xml等) 例如将Django中的模型类对象转换为json字符串 数据增删改查流程 增...校验请求参数 -> 反序列化 -> 保存数据 -> 将保存的对象序列化并返回 删 判断要删除的数据是否存在 -> 执行数据删除 改 判断要修改的数据是否存在 -> 校验请求参数 -> 反序列化 ->...保存数据 -> 将保存的数据序列号并返回 查 查询数据库 -> 将数据序列化并返回 原始设计代码 import json from django.http import JsonResponse from

    1.1K50

    RESTframework_一

    API ,视图操作 将数据库序列化为前端所需要的格式,并返回 将前端的数据反序列化为模型类对象,并保存到数据库中 REST framework 特点: 提供了定义序列化器Serializer的方法,可以快速根据...Django ORM 或者其它库自动序列化/反序列化; 提供丰富的类视图,Mixin扩展类,简化视图的编写 丰富的定制层级:函数视图,类视图,视图集合到自动生成API,满足各种需要 多种身份认证和权限认证的支持...,也可以为非数据库模型类的数据定义。...序列化操作 基本使用 1) 查询一个图书对象 2) 构造序列化器对象 3) 获取序列化数据,如果获取的是多条数据,添加many=True 参数补充说明 def books(request)...(BookInfo.objects.all(),many=True).data print(book_dict) 关联对象嵌套序列化 # 关联对象嵌套序列化 # 1.主键形式输出 #

    72820

    Django REST Framework-序列化和反序列化

    在Django REST Framework(DRF)中,序列化和反序列化是将Django模型转换为序列化的格式,以便我们可以将其发送到前端应用程序并从前端应用程序接收数据的过程。...序列化是将Django模型转换为序列化格式的过程,例如JSON、XML或YAML。这使得我们可以将Django模型发送到前端应用程序,以便用户可以查看和操作这些数据。...在DRF中,我们使用序列化器类来定义序列化器,可以使用DRF提供的Serializer或ModelSerializer类,具体取决于我们是否要序列化Django模型。...我们使用Meta类指定要序列化的模型以及要包含在序列化器中的字段。使用'all'选项,我们可以将所有模型字段包含在序列化器中。...反序列化是将序列化格式的数据转换为Django模型的过程,以便我们可以将数据保存到数据库中。在DRF中,我们使用序列化器类的from_data()方法来执行反序列化。

    74621

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

    例如,使用缓存来减轻数据库负载,使用性能调优工具来识别并优化慢查询,以及使用负载均衡和水平扩展来提高应用程序的可扩展性。12....数据序列化与性能优化在处理大量数据时,有效地序列化和反序列化数据对性能至关重要。Django REST框架提供了丰富的序列化和性能优化功能,可以帮助我们提高应用程序的性能和效率。...数据序列化通过使用序列化器,我们可以将复杂的数据结构转换为简单的JSON格式,并进行序列化和反序列化操作。...例如,我们可以定义一个嵌套序列化器来序列化和反序列化关联模型:class UserProfileSerializer(serializers.ModelSerializer): user = UserSerializer...提供了内置的文件存储系统,可以将上传的文件保存到本地文件系统或云存储服务中。

    40820

    Django-DRF | 验证器

    多数时候,在 REST 框架中处理验证时,只需要依赖默认的字段验证,或者在序列化程序和字段类上编写显式验证方法。...在开发 REST API 接口时,在视图中需要做的最核心的事: 将数据库数据序列化作为前端所需要的格式,并返回。 将前端发送的数据反序列化作为模型类对象,并保存到数据库中。...每个视图具体操作的数据不同,但增、删、改、查的实现流程都可以复用简化编写: 增:校验请求数据 ---> 执行反序列化过程 ---> 保存数据库 ---> 将保存的对象序列化并返回 删:判断要删除的数据是否存在...---> 执行数据库删除 改:判断要修改的数据是否存在 ---> 校验请求的数据 ---> 执行反序列化过程 ---> 保存数据库 ---> 将保存的对象序列化并返回 查:查询数据库 ---> 将数据序列化并返回...使用 REST 框架,验证完全在序列化程序类上执行。

    1.7K10

    Django 的 admin后台使用富文本编辑器,保存数据之后,还要在html页面展示

    CKEditor 实现的效果 CKEditor的安装 pip install django-ckeditor pip install pillow 在setting.py中的下面几个配置 INSTALLED_APPS...'height': 300, # 编辑器高度 'width': 800, # 编辑器宽 }, } CKEDITOR_UPLOAD_PATH = '' # 上传图片保存路径...,如果没有图片存储或者使用自定义存储位置,那么则直接写 ' ' ,如果是使用django本身的存储方式,那么你就指名一个目录用来存储即可。...需要注意的是,如果使用django自带的存储,那么路径是一个相对路径,它相对与你设置的的MEDIA_ROOT。...登录admin后台,使用富文本编辑器就可以进行保存数据了,保存到数据库中,就是一大段的html标签弄出的代码 查询出这个字段,在页面直接展示就可以 {% autoescape off %

    1.3K20

    美多商城项目(十一)

    3.将所有的商品信息进行嵌套序列化。(此处采用关联对象的嵌套序列化器来进行嵌套序列化) 4.返回给前端相对应的数据。...2.将图片验证码保存到redis数据库中,设置有效期为300s。可以使用图片验证码的id为键,图片验证码内容为值的形式进行存储。 3.将图片验证码返回给前端页面,做出响应。...1.在模型类中实现检验修改密码 token 的方法,取出 data,判断 user_id 是否一样; 2.定义重置密码序列化器,判断两次密码是否一样,判断是否是当前用户,返回数据; 3.调用 updata...2.自定义序列化器类,添加我们需要的字段。 3.将数据序列化并返回。 5.2提交评论信息 API: POST /orders/(?...2.保存数据到数据库。 3.将数据序列化并返回。 此步一定要确保上个接口提交给前端的数据正确,否则,这个接口获取不到完整的信息会一直失败。 ?

    1.5K11

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

    文章目录 一、APIView ---- 一、APIView REST框架提供了一个类APIViewView,APIView类在以下方面与常规类不同,它是继承于View类。...传递给处理程序方法的请求将是REST框架的实例,而不是Django的实例。 RequestHttpRequest处理程序方法可以返回REST框架,而不是Django的。并在响应上设置正确的呈现器。...APIException传入的请求将经过身份验证,并且在将请求调度到处理程序方法之前,将运行适当的权限和/或限制检查。 使用该类与使用常规类几乎相同,像往常一样,传入的请求被调度到适当的处理程序方法。...ser = BookSerializer(books, many=True) # 使用序列化器对象的data方法获取序列化后的结果 data = ser.data...# 调用序列化器中封装保存方法create ser.save() return Response(ser.data) class BookAPIView

    60030

    跟着官方文档学Python——Django Rest framework

    两者都是数据转换格式,比如我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以需要把数据进行序列化,变成字符串或者json数据,提供给别人,这是序列化。...再比如前端js提供过来的json数据,对于python而言就是字符串,我们需要进行反序列化换成模型类对象,这样才能把数据保存到数据库中,这是反序列化。...'rest_framework', ] 在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤: 将请求的数据(如JSON格式)转换为模型类对象 通过模型类对象进行数据库操作...python manage.py makemigrations python manage.py migrate 创建序列化器 首先我们要定义一些序列化程序,子应用下创建serializers.py...# 验证数据的方法[反序列化:接收客户端的数据] # 操作数据的带密码[反序列化:保存数据(添加/更新)] 编写视图views.py from django.shortcuts import

    2.3K10

    美多商城项目(四)

    可以添加一个邮箱设置序列化器类;email序列化和反序列化时都用;自动生成的字段email默认是可以不传递的,我们修改为必传;将 required改为True。 2.设置登录用户的邮箱。...4.在序列化器类中自己设置update方法。 4.1设置用户的邮箱。 4.2给邮箱发送验证邮件。 发送邮件需要使用SMTP服务器,常用的服务器有163邮箱等。...5.在Django配置文件中,设置邮箱配置信息。需要修改邮箱和客户端授权密码,以及收件人看到的发件人。 6.使用Django提供的模块发送邮件。...7.1在用户模型类User中添加方法用于生成用户的邮箱验证连接地址。 7.2封装一个函数,使用celery异步发送邮件。...将地区数据序列化并返回。(地区下级地区需要进行嵌套序列化) 关联对象嵌套序列化:使用指定的序列化器 省市县三级联动只需要实现两个接口即可1、4 ?

    1.2K30

    Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

    文章目录 一、普通方式实现商品列表页 1.使用Django View实现商品列表 2.serializer序列化model 二、DRF实现商品列表页 1.使用serializer实现基本序列化 2.使用...2.serializer序列化model 使用Django自带的model_to_dict()方法可以实现直接将模型数据转化为字典形式,但是对于DateTimeField、ImageField等字段时还是无法序列化...serializer将数据保存到数据库中。...此时对于商品信息,category显示的时对应GoodsCategory模型的主键,当然还可以显示Category的具体信息,此时需要使用嵌套序列化,如下: from rest_framework import...三、DRF的使用 1.DRF的Request和Response类 DRF对Django的Request和Response类进行了进一步的封装,因此使用起来更方便。

    5.3K20
    领券