展开

关键词

重点内容回顾-DRF

重点内容回顾-DRF 1. on_delete on_delete是定义模型类中外一个选项。 on_delete选项指明是主表删除数据时候,对于外引用表数据如何处理。 前后端分离:后端返回前端所需数据,至于数据怎么显示,由前端自己控制。 功能: 1.视图中request对象不再是Django中原始HttpRequest类对象,而是DRF框架封装Request类对象。 ,DRF框架会自动对异常进行处理,并且会把处理之后错误信息返回给客户端。 团队开发注意事项 浅谈密码加密 Django框架中英文单词 Django中数据库相关操作 DRF框架中英文单词

28620

不会DRF?源码都分析透了确定不来看?

Django View和DRF APIView小插曲 DRF之APIView和Request对象分析 APIView执行流程 Request对象分析 原来django中没有request.data 官网:https://www.django-rest-framework.org/ drf安装默认安装最新版本,如果django版本过低会自动升级到3.x版本 版本支持对应关系 示例 最常见比如我们使用json模块来对数据进行处理···· 在Djangorestframework中序列化序列化又是如何序列化: 在Django中获取到数据默认是模型对象(QuerySet对象),但是模型对象数据无法直接提供给前端或别的平台使用,我们需要把数据进行序列化,变成字符串或json数据提供给前端或其他平台; (序列化) json格式字符串 -----》 python 对象 (反序列化如何使用DRF快速写出增删查改接口?

6310
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

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

    python技术面试题(二十三)

    功能: 1.视图中 request 对象不再是 Django 原始 HTTPRequest 类对象,而是由 DRF 框架封装成 Request 类对象。 2.响应时可以统一返回 Response 类对象。 uwsgi: 1.Django 程序通常使用 uwsgi 服务器来运行 2.需要安装后,编写配置文件,然后设置 Nginx 配置文件让其将请求转发给 uwsgi 服务器。 ES 1.Elasticsearch 是怎么样数据库,数据是如何存储? 答:Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化格式。 Django中数据库相关操作 DRF框架中英文单词 DRF框架 Django相关知识点回顾 python技术面试题-腾讯

    27610

    Django&DRF重点内容大盘点

    Django&DRF重点内容大盘点 本文只是将学习过程中需要深刻记忆,在工作中常用一些命令或者知识点进行一个罗列并阐释,不会全面的将所有内容进行讲解。 大家可以在了解了Django框架和DRF框架之后再来看这篇文章。否则会有点不知所云。 1.3一个程序注意点 1.3.1视图函数定义 1)定义视图函数之后,要有一个request形参接收请求对象。 1.将数据库数据序列化为前端所需要格式,并返回 2.将前端发送数据反序列化为模型类对象,并保存到数据库中 2.4DRF框架 2.4.1作用:大大提高RestAPI接口开发效率 2.5序列化器Serializer hbook = BookInfoSerializer(label='图书') 3.将关联对象序列化为关联对象模型类_str_方法返回值 hbook = serializers.StringRelatedField

    55920

    DRF框架学习(二)

    : 1)根据pk获取指定图书对象 2)删除对应数据 3)返回响应,状态码:204 注意: pk是id一个别称 重点掌握是实现思路,如何去将需求一步步实现出来,然后其次重要就是代码。 2.明确RestAPI接口实现时主要工作 2.1序列化&反序列化程序数据结构类型转换为其他格式数据,这个过程叫做序列化过程 例:将模型类对象转换为字典或者json数据过程,就叫做序列化过程 把其他格式数据转换为程序中数据结构类型,这个过程叫做反序列化过程。 例:将前端传递数据保存到模型对象过程,叫做反序列化过程。 2.2RestAPI接口核心工作: 把数据库数据序列化为前端所需要格式,并返回。 把前端发送数据反序列化为模型类对象,并保存到数据库中。 3.1环境安装与配置 DRF需要以下依赖: Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6) Django (1.10, 1.11, 2.0) DRF是以Django扩展应用方式提供

    97230

    第 11 篇:基于 drf-haystack 文章搜索接口

    django-haystack 默认返回搜索结果是一个类似于 django QuerySet 对象,需要配合模板系统使用,因为未被序列化,所以无法直接用于 django-rest-framework 当然解决方案也很简单,编写相应序列化器将返回结果序列化就可以了。 一套标准化 django-restful-framework 开发流程,不过大量工作已由 drf-haystack 在背后替我们完成,我们写了非常少量代码即实现了一套搜索接口。 来看看搜索效果。 但是,django-rest-framework 并没有提供这些比较个性化需求序列化字段,因此接下来我们接触 drf 一点高级用法——自定义序列化字段。 对象,这个对象就是视图中 HTTP 请求对象,但是因为 django 中 request 对象无法像 flask 那样从全局获取,因此 drf 在视图中将其保存在了序列化器和序列化字段 context

    23910

    测试开发你不得不学 REST API 开发

    显然API开发已经成为后端程序必备技能了,那作为一个测试,特别是把Django作为自己主要自动化测试平台测试开发,Django REST framework(DRF)这个REST API开发框架就是你不得不掌握内容了 首先是模型层,在apiTest/model.py 创建一个Project 类来存储项目信息: Django REST framework框架与Django框架最核心区别就是:序列化器,DRF提供了定义序列化序列化作用: 对数据进行转换 序列化对象转为json)和反序列化(json转为对象); 进行数据校验 判断用户发送数据是否合法。 在apiTest/serializers.py 中添加关于Project 对象序列化代码: 视图 DFR 提供了 请求对象(Request objects)和 响应对象(Response objects )来提供更加灵活请求解析和使用内容协商来确定返回给客户端正确内容类型。

    6510

    第 16 篇:别再手动管理接口文档了

    drf-yasg drf-yasg[5] 是一个 django 第三方应用,它可以从 django-rest-framework 框架编写代码中自动提取接口信息来生成符合 OpenAPI 标准文档 其中 toc 和 body_html 因为不是 Post 中定义字段,所以 drf-yasg 无法知道关于这两个字段说明。 drf-yasg 是如何知道这个接口会返回哪些响应参数呢? 原理是 drf-yasg 会尝试去解析接口对应序列化器(Serializer),从序列化器中提取出对应请求和响应字段(如果序列化器中找不到,它会进一步去序列化器关联模型中找),因此我们就可以给序列化器中定义字段添加说明信息 一是 GET /posts/{id}/comments/,最初我们发现这个接口文档响应是一个单一评论对象,原因我们上面也分析了,drf-yasg 根据 detail=True 误地将其作为返回单一资源接口处理了 responses 参数值是一个字典,字典是 HTTP 响应码,值可以是一个序列化器,这样 drf-yasg 会拿这个序列化器去解析接口响应参数;也可以是一个字符串,drf-yasg 会把字符串直接当做接口响应结果写入文档中

    23420

    DjangoRestFramework,序列化组件、视图组件

    drf给我们提供一个类似于Postman功能页面,首先我们创建一个django项目,创建一个Course表,然后添加一些数据,然后按照下面的步骤操作, 第一步:引入drfResponse对象  from import APIView from django.core.serializers import serialize #django序列化组件,不是我们要学drf序列化组件昂 #不用json #django序列化组件,不是我们要学drf序列化组件昂 #from rest_framework import status #返回指定状态码时候会用到 #return Response( Response如果返回drf序列化之后数据,那么客户端拿到是一个有格式数据,不再是一行显示了   看效果: ? #接下来序列化单个model对象序列化单个对象返回是一个字典结构 {},序列化多个对象返回是[{},{}]这种结构 book_serializer = BookSerializers

    25320

    django restframework serializer 增加自定义字段操作

    在使用django restframework serializer 序列化django中定义model时,有时候我们需要额外在serializer中增加一些model中没有的字段。 假设现在有一个Animal模型,其中有name, type, country字段,country为外。我们在序列化Animal时,需要额外增加外countryarea信息。 它通过调用它所连接序列化方法来获得它值。它可用于将任何类型数据添加到对象序列化表示中。 由 method_name 参数引用序列化方法应该接受一个参数(除了 self),这是要序列化对象。它应该返回你想要包含在对象序列化表示中任何内容。 :我们提交表单数据存在于多表中(因为表中含有多对多字段),如何验证所有字段,并保存完整数据到各表中。

    1.2K30

    Django项目之Elasticsearch搜索引擎

    是为了在REST framework中使用haystack而进行封装(如果在Django中使用haystack,则安装django-haystack即可)。 """ return SKU def index_queryset(self, using=None): """返回要建立索引数据查询集""" /serializers.py中创建haystack序列化器 from drf_haystack.serializers import HaystackSerializer class SKUIndexSerializer text,并且检索出数据后再使用这个序列化返回给前端; SKUIndexSerializer序列化器中object字段是用来向前端返回数据时序列化字段。 ,出现如下异常,是因为drf-haystack还没有适配最新版本REST framework框架 importError: cannot import name '_get_count' 可以通过修改

    53920

    【愚公系列】2022年04月 Python教学课程 70-DRF框架之视图集

    视图集在使用as_view()方法时候,才会将action动作与具体请求方式对应上。 books = BookInfo.objects.all() # 2、提取所有对象字段内容 # 初始化生成序列化对象 ser = BookSerializer (books, many=True) # 使用序列化对象data方法获取序列化结果 data = ser.data # 3、返回所有对象字段内容 # 初始化生成序列化对象 self.get_serializer 获取serializer_class所指定序列化器进行初始化操作 ser = self.get_serializer (books, many=True) # 使用序列化对象data方法获取序列化结果 data = ser.data # 3、返回所有对象字段内容

    7530

    drf之请求、响应、视图

    作者&好友:Laoqi 1、请求与响应 1.1 Request(请求) drf 传入视图request 不再是Django默认HttpRequest对象,而是drf 提供拓展了HttpRequest 2.1 两个视图基类 2.1.1 APIView APIView是drf 提供所有视图基类,继承自DjangoView父类。 APIView与View不同之处在于: 传入到视图方法中是REST frameworkRequest对象,而不是DjangoHttpRequeset对象; 视图方法可以返回REST framework ,那么可以通过条件判断在get_serializer_class方法中通过返回不同序列化器类名就可以让视图方法执行不同序列化对象了。 注意: 该方法在提供序列化对象时候,会向序列化对象context属性补充三个数据:request、format、view,这三个数据对象可以在定义序列化器时使用。

    42620

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

    文章目录 一、DRF框架自带异常 二、自定义异常 一、DRF框架自带异常 REST 框架视图处理各种异常,并处理返回适当错误响应。 处理异常包括: 在 REST 框架中定义异常。 二、自定义异常 您可以通过创建一个处理程序函数来实现自定义异常处理,该函数将 API 视图中引发异常转换为响应对象。这允许您控制 API 使用错误响应样式。 该函数必须采用一对参数,第一个是要处理异常,第二个是包含任何额外上下文(如当前正在处理视图)字典。异常处理程序函数应返回对象,如果无法处理异常,则应返回。 如果处理程序返回,则将重新引发异常,Django返回标准HTTP 500“服务器错误”响应。 它不会用于视图直接返回任何响应,例如在序列化程序验证失败时由泛型视图返回响应。HTTP_400_BAD_REQUEST

    7040

    第 9 篇:实现分类、标签、归档日期接口

    事实上,我们在上一部教程 HelloDjango - Django博客教程(第二版) 页面侧边栏:使用自定义模板标签 已经讲解了如何获取归档日期列表,只是当时返回归档日期列表直接用于模板渲染,而这里我们需要将归档日期列表序列化后通过 之前序列化字段都是在序列化器(Serializer)里面使用,因为通常来说接口需要序列化一个对象多个字段。 用法也很简单,实例化序列化字段,调用其 to_representation 方法,将需要序列化值传入即可(其实序列化器在序列对象多个字段时,内部也是分别调用对应序列化字段 to_representation 接着我们在接口返回一个 Response, Response 将序列化结果包装返回(保存在 data 属性中),django-rest-framework 会进一步帮我们把这个 Response 中包含数据解析为合适格式 事实上,分类、标签或者归档日期文章列表 API,本质上还是返回一个文章列表资源,只不过比首页 API 返回文章列表资源多了个“过滤”,过滤出了指定部分文章而已。

    15430

    django-rest-framewor

    DRF(Django RestFramework)是一套基于Django开发、帮助我们更好设计符合REST规范Web应用一个Django App,所以,本质上,它是一个Django App。 DRF APIView请求流程: ?   DRFdjango视图配置流程图(个人画) ? 2 解析器组件 (用来解析数据请求组件)   Django并不能处理请求协议为application/json编码协议数据   注意: DRF解析器会封装到View中parsers内,在视图函数被调用时 ,many默认为False,如果返回数据是一个列表嵌套字典多个对象集合,需要改为many=True 返回:将序列化对象data属性返回即可  {{ 实践代码 }} --post接口设计 url 定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图类中定义post方法 开始序列化:通过我们上面定义序列化类,创建一个序列化对象,传入参数

    28610

    第 15 篇:接口单元测试

    这里我们再对 djnago 测试框架做一个回顾整体回顾,至于如何编写和运行测试,后面将会进行详细讲解,如果想对 django 单元测试做更基础了解,推荐回去看看关于测试 3 篇教程以及 django 对这个接口请求, # 我们预期返回结果是 post2 和 post1 这两篇发布于2020年7月文章序列化数据。 ,序列化器中任何序列化字段均可以通过直接访问 context 属性而间接访问到 _context 属性,从而拿到 request 对象。 对 django 内置 request 进行了包装, # 因此这里要手动使用 drf 提供 Request 类对 django request 进行一层包装。 # self.context["request"] 拿到请求对象 request setattr(field, "_context", {"request": drf_request

    18620

    美多商城项目(五)

    并且在查询出数据,返回结果之前,先将查询结果存到缓存中,便于下次使用。 2.2使用缓存 在Django REST framework中使用缓存,可以通过 drf-extensions扩展来实现。 ,与配置文件中 CACHES对应。 self.get_serializer(...)创建序列化对象时,会向序列化对象context属性中补充request参数,可以通过 序列化对象.context['request']来获取request 总结回顾 1.视图集对象action属性使用场景 重写getserializerclass和get_queryset,根据不同action操作,返回不同序列化器和不同查询集。 团队开发注意事项 浅谈密码加密 Django框架中英文单词 Django中数据库相关操作 DRF框架中英文单词 重点内容回顾-DRF

    47130

    扫码关注腾讯云开发者

    领取腾讯云代金券