首页
学习
活动
专区
圈层
工具
发布

DRF入门

drf介绍 Django REST framework (简称:DRF)是一个强大而灵活的 Web API 工具。 遵循RESTFullAPI风格,功能完善,可快速开发API平台。.../1/ #对于指定数据进行更新,删除,查看操作 DRF序列化器 序列化与反序列化介绍 在日常开发中,会从别的API获取数据或者自己写API提供数据,数据格式一般都是采用JSON格式。...这期间就会涉及两个专业术语: **序列化:**将python对象转json,后端响应 **反序列化:**将json转为python对象, 后端处理数据需要转换成python对象 之前常用三种序列化方式...之前常用三种序列化方式: Django内置Serializers模块 Serializers是Django内置的一个序列化器,可直接将Python对象转为JSON格式,但不支持反序列化 from django.core...内置JsonResponse模块 JsonResponse模块自动将Python对象转为JSON对象并响应。

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

    重点内容回顾-DRF

    创建子应用: python manage.py startapp 子应用名称 c. 使用shell: python manage.py shell d....5.2Restful API接口设计风格 关键点: a.url地址尽量使用名词,不要使用动词; b.请求url地址采用不同的请求方式执行不同的操作;(POST新增/GET获取/PUT修改/DELETE删除...Response类的对象:传入原始的响应数据,会自动根据客户的请求头中 Accept将响应数据转换为对应的格式进行返回,默认是json,仅支持json和html 3.异常处理:如果视图中抛出了未处理异常...操作序列化器: 属性: serializer_class(指定视图所使用的序列化器类) 方法: get_serializer_class返回视图所使用的序列化器类 get_serializer创建视图所使用的序列化器类对象...数据库查询 属性: queryset(指定视图所使用的查询集) 方法: get_queryset返回视图所使用的查询集 get_object从视图所使用的查询集中查询指定的对象,默认根据pk进行查询。

    3.4K20

    安装 Django REST Framework

    安装Django REST Framework(以下简称DRF)非常简单。您只需按照以下步骤操作:创建一个新的Django项目或使用现有的Django项目。在命令行中使用pip命令安装DRF。...'rest_framework',]这将允许您使用DRF的所有功能。现在您已经安装了DRF,接下来我们将介绍一些基本的用法和示例。创建序列化器序列化器是DRF中的一个核心概念。...我们指定了User模型作为序列化器的元数据,并指定了我们想要在JSON中包含的字段。创建视图视图是DRF中的另一个核心概念。它们定义了API的行为,即如何响应请求、如何验证输入等。...我们指定了我们想要返回的所有用户的查询集,并指定了用于序列化数据的序列化器。创建路由路由是将URL映射到视图的一种机制。在DRF中,我们可以使用Django的URLConf和DRF的路由器来定义路由。...测试API现在我们已经定义了序列化器、视图和路由,我们可以使用Django内置的开发服务器测试我们的API。运行以下命令:python manage.py runserver这将启动开发服务器。

    2.3K20

    Flask框架在Python面试中的应用与实战

    在Python面试中,对DRF的理解与实际应用能力是衡量候选人Web服务开发能力的重要指标。本篇博客将深入浅出地探讨DRF面试中常见的问题、易错点以及应对策略,并结合实例代码进行讲解。...路由与URL配置路由器(Router):说明路由器如何根据ViewSet自动创建API路由,以及如何自定义路由命名和视图动作。...异常处理:介绍如何使用DRF的异常体系(如PermissionDenied、NotAuthenticated、ValidationError等)处理错误情况,并自定义异常响应。...:在项目中统一响应格式,包括状态码、数据结构、错误消息等,遵循RESTful原则,提升API的易用性和一致性。...、规避常见错误,并通过实战项目积累经验,将有助于你在Python面试中展现优秀的API开发技能,从容应对DRF相关的问题挑战。

    70910

    DRF进阶之DRF视图和常用功能

    APIView类 APIView:DRF提供的所有视图的基类,继承View并扩展,具备了身份认证、权限检查、流量控制等功能 创建项目 创建app并加入settings.py E:\workspace\...django-project\day2\django_drf>python manage.py startapp myapp 项目主路由配置: django_drf/urls.py 创建项目视图:...提供了一个响应类Reponse,响应的数据会自动转换符合前端的JSON数据格式。...,传递python对象 status:状态码,默认200 template_name:模板名称 headers:用于响应头信息的字典 content_type:响应数据的类型 使用方法: return...常用功能 主流认证方式 Session认证 HTTP是一个无状态的协议,每次访问都是新的,早期主要用于浏览网页,随着时代发展,像在线购物网站的兴起,就面临着记录哪些人登录系统,哪些人购物车里放了商品。

    5.9K10

    Python进阶39-drf框架(一)

    -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。...search=西&ordering=-price&limit=3 响应数据: 1) http请求的响应会有响应状态码,接口用来返回操作的资源数据,可以拥有 操作数据结果的 状态码 status...子资源、图片、视频等资源),返回该资源的url链接 API与用户的通信协议,总是使用HTTPs协议 域名: https://api.example.com 尽量将API部署在专用域名...manage.py makemigrations MacBook-pro:rest_ful driverzeng$ python3 manage.py migrate ## 创建超级用户 MacBook-pro...-i https://mirrors.aliyun.com/pypi/simple/ ---- 图形化安装  drf使用 ---- 注册drf settings.py INSTALLED_APPS

    4.8K30

    Django(42)DRF安装与使用

    DRF介绍 DRF是Django Rest Framework单词的简写,是在Django框架中实现Restful API的一个插件,使用他可以非常方便的实现接口数据的返回。...Django中也可以使用JsonResponse直接返回json格式的数据,但是DRF相比直接使用Django返回json数据有以下几个好处: 可以自动生成API文档,在前后端分离开发的时候进行沟通比较有用...支持ORM模型和非ORM数据的序列化。 高度封装了视图,使得返回json数据更加的高效。...安装DRF 安装drf之前,需要以下依赖 Python (3.5, 3.6, 3.7) Django (1.11, 2.0, 2.1, 2.2, 3.0) 准备好以上依赖后,可以通过以下命令安装 pip3...'rest_framework', ] drf知识体系 接口:什么是接口、restful接口规范 CBV生命周期源码 – 基于restful规范下的CBV接口 请求组件、解析组件、响应组件 序列化组件(

    90020

    Django REST Framework

    ,版本信息也可以放在HTTP协议中 过滤信息,使用URL的参数代表过滤 返回值: 每一个返回代码都有具体特定含义 返回格式:推荐固定具体格式 DjangoRestFramework(DRF) https...创建三个模型:Student,Teacher, ClassRoom 创建序列化器 创建视图聚合 序列化 序列化: 把系统运行中的一些实例等转换成一种可直接表示出来的格式,用来保存,传输等 反序列化: 序列化的反操作序列化.../反序列化-DRF 实验步骤 创建project DRF2 创建app MySer settingsserializer的类型的参数 read_only: 仅用于序列化输出 write_only: 反序列化输入...required:反序列化时必须输入,默认是True allow_null: 允许传入None validators: 使用验证器创建serializer对象/使用 构造方法 Serializer...的request.POST, request.FILES 在DRF中主要指的是Json query_params 所有传入的关键字 api.tulingxueyuan.com

    2.8K63

    Django集成Swagger全指南:两种实现方案详解

    Swagger 是一套用于描述、生成、消费和可视化 RESTful API 的规范和工具集,目前已演进为 OpenAPI 规范:Swagger 2.0:支持 WebSockets、OAuth2、文件上传等功能...API 描述格式(JSON/YAML)便于前后端协作和 API 版本管理两种方案对比特性 drf-yasg drf-spectacular 规范支持 Swagger...drf-yasg(支持 Swagger 2.0)工具介绍drf-yasg 是基于 Django REST Framework (DRF) 的 API 文档生成工具,专注于 Swagger 2.0 规范...格式文档:http://localhost:8000/swagger.json下载 YAML 格式文档:http://localhost:8000/swagger.yaml三、方案二:使用 drf-spectacular...@extend_schema 装饰器自定义接口描述:from drf_spectacular.utils import extend_schema@extend_schema(summary="创建岗位

    36910

    DRF对Django请求响应做了技术升级

    Django视图是用来处理请求和响应的,Django默认是按Form和Template来设计的,如果要处理以JSON格式为主的RESTful API,那么就需要对Django请求和响应的处理代码进行优化改造...@api_view和APIView DRF对API视图做了2个封装: @api_view用于函数视图。 APIView用于类视图。...,如: @api_view(['GET', 'POST']) 使用了状态码标识符,如: status.HTTP_404_NOT_FOUND 使用request.data替代了 data = JSONParser...添加后缀格式(可选) 既然DRF能自动处理content type,那么也可以给URL指定具体的后缀格式,比如http://example.com/api/items/4.json。...", "style": "friendly" } API文档 DRF提供了可视化的API HTML文档,把API URL在浏览器中打开即可看到: ?

    1.3K20

    Django进阶:DRF(Django REST framework)

    简单来说:通过DRF创建API后,就可以通过HTTP请求来获取、创建、更新或删除数据(CRUD)。 那么为什么要构建API呢?...关于如何设计出符合REST风格的API,可以参考阮一峰的《RESTful API 设计指南》 那么用DRF实现的就是RESTful API吗?其实DRF没有强制实现。...'rest_framework', ] 同步数据库 python manage.py migrate 创建超级用户admin,密码设置为password123: python manage.py createsuperuser...--email admin@example.com --username admin 创建API 接下来就是重点,我们要创建一个序列化程序将model转换成json格式。...django drf (图片来自:一图看懂Django和DRF(https://zhuanlan.zhihu.com/p/53957464)) 测试API: 使用浏览器访问网址: http://127.0.0.1

    1.6K20

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

    "pure_pagination", # 分页 "haystack", # 搜索 "drf_yasg", # 文档 ] 接着使用 drf_yasg 提供的函数来创建一个 django...随着为其添加更多信息,告诉 drf-yasg 这是一个返回资源列表的接口,问题也就顺便解决了。...responses 参数的值是一个字典,字典的键是 HTTP 响应码,值可以是一个序列化器,这样 drf-yasg 会拿这个序列化器去解析接口响应的参数;也可以是一个字符串,drf-yasg 会把字符串直接当做接口响应结果写入文档中...看看修改后的效果: 至此,我们就有了一套比较完善的博客接口文档了,而且大部分内容均由 drf-yasg 为我们自动生成,省去了不少手写文档的麻烦。...如果你在使用过程中遇到了问题,首先尝试分析问题的原因,然后顺藤摸瓜去找到相关的源码,看看库的内部是如何处理你所遇到的问题的,这样就可以针对性地给出解决方案了,这篇教程中列出的很多问题以及最后给出的解决方案

    2.3K20

    drf的接口文档生成与管理

    上面列出的工具或多或少都需要花费一定时间去手动维护,在drf后端项目中可以利用其自带的Core API、第三方库Swagger以及更好的drf-yasg自动生成接口文档 2、Core API生成接口文档...path('docs/', include_docs_urls(title='API document')), ] 2.3 文档描述说明的定义位置 单一方法的视图,可直接使用类视图的文档字符串 class...当接口有变动时,对应的接口文档也会自动更新 Swagger优势 Swagger可生成一个具有互动性的API控制台,可快速学习和尝试API Swagger可生成客户端SDK代码,用于不同平台上Java、Python...会暴露4种默认路径endpoint, 分别为: /swagger.json, JSON 格式的 API 定义 /swagger.yaml, YAML 格式的 API 定义 /swagger/, 基于原生...://blog.shabbywu.cn/posts/2020/04/15/python-auto-doc-for-drf.html

    5.5K10

    Python3+ Django3:自动生成Swagger接口文档

    传统的接口文档通常都是使用Word或者一些接口文档管理平台进行编写,但此类接口文档维护更新比较麻烦,每次接口有变更,需要手动修改接口文档。...Swagger优势: 1)Swagger可生成一个具有互动性的API控制台,开发者可快速学习和尝试API 2)Swagger支持不同客户端SDK代码,用于不同平台上(Java、Python、...)的实现...djangorestframework 3、创建django项目和app # 创建django项目和app django-admin startproject drf_swagger cd drf_swagger...django-admin startapp api 需要注意的是,本篇文章示例,是基于Python3及Django当前最新库来进行的。...# 生成迁文件、执行同步 python manage.py makemigrations python manage.py migrate 2、创建后台管理员用户 python manage.py createsuperuser

    17.2K32

    DRF的Request对象和Response对象

    DRF的Request对象和Response对象 一旦使用了DRF的视图,那么传入视图的Request对象不在是Django的Request对象,而是DRF封装过后的Request对象。...同样,DRF建议使用封装过的Response来返回HTTP响应,使用该类构造响应对象时,响应的具体数据内容会被转换(render渲染)成符合前端需求的类型。...例如,如果您json使用带有.ajax() 方法的jQuery发送编码数据,则应确保包含该contentType: 'application/json'设置。...使用Response类只是为返回内容协商的 Web API 响应提供了一个更好的接口,可以呈现为多种格式。...不过DRF官方还是建议我们对继承自APIView类或使用@api_view进行装饰的函数,都返回Response对象。 使用了Response对象返回,默认会带有一定的样式。

    2.2K40

    LinkedIn采用协议缓冲区进行微服务集成,将延迟降低了60%

    领英平台所采用的是微服务架构,而多年以来,JSON 一直都是领英在微服务暴露的五万余 API 节点中所使用的序列化格式。...为帮助团队在服务间构建一致性交互,领英创建并开源了一款名为 Rest.li 的 Java 框架。...该框架可用于创建使用 REST 通信风格的服务器和客户端,并抽象网络、序列化、服务发现等数据交换的诸多方面。...领英工程师 Karthik Ramgopal 和 Aman Gupta 分享了在使用 JSON 进行服务间通信所要面临的挑战: 第一个挑战在于,JSON 作为一款文本格式往往过于冗长,从而导致网络带宽的使用和延迟增加...(……)我们所面临的第二个挑战则在于,JSON 的文本性质会导致序列化和反序列化的延迟和吞吐量均不甚理想。

    35120

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    2.RESTFUl API设计 2.1 使用协议       API与用户的通信协议,总是使用HTTPs协议。...GET /orders/2 HTTP/1.1 Accept: application/json       2.8.2 发生错误时的响应         发生错误时不要响应200状态码,有一种不恰当的做法是...2.10 其他       (1)API的身份认证应该使用OAuth 2.0框架。       (2)服务器返回的数据格式,应该尽量使用JSON,避免使用XML。...DRF官网地址,但是大家记住一句话,即便是没有这drf,我们照样能做前后端分离的项目,自己做规范的数据接口,返回json数据,都是没问题的昂,那为什么还用drf啊,这个更nb。...来写个接口,看看效果   好,接下来我们创建一个django项目,models中创建一个表,添加一些数据,然后写一个数据接口来获取一下这些数据,返回json数据类型,按照我们CBV的模式来写,但是下面还没有用到我们的

    3.1K20
    领券