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

第 3 篇:实现博客首页文章列表 API

视图函数里我们先从数据库获取文章列表资源,然后使用序列化器对其进行序列化,序列化后的数据存在 data 属性里,我们把它传递给 HTTP 响应类 Response,并将这个响应返回。...HTTP 响应即可),通常在 RESTful API 的视图函数中我们都会返回这个类,而不是 django 的 HTTP 响应类。...原因在于,对于 django 中的模型(Model),已经有了定义其数据类型的模型字段,因此 django 表单可以根据关联的模型,自动推测需要使用的表单字段,在背后帮我们完成表单字段的选择,简化了表单的定义...和表单类似,django-rest-framework 的序列化器也可以根据关联的模型,自动检测被序列化模型各个属性的数据类型,推测需要使用的序列化字段,无需我们显示定义。...回顾一下 index API 视图函数的基本逻辑: 从数据库取数据 构造序列化器并将取出的数据序列化 返回响应 这其实是访问序列型的资源比较常见的逻辑,我们知道,django 专门为这种在 Web 开发中常用的逻辑提供了一系列基于类的通用视图

1.9K20

django_restframework模块学习

更加灵活,不仅仅支持表单数据,传入同样的 JSON 数据一样可以正确解析,并且不用做额外的处理(意思是前端不管提交的是表单数据,还是 JSON 数据,.data 都能够正确解析)。...默认情况下, REST framework 的 APIView 类或者 @api_view 装饰器将捕获错误并返回 400 Bad Request 响应。...由于 Response 类使用的渲染器不能处理复杂的数据类型(比如 Django 的模型实例),所以需要在创建 Response 对象之前将数据序列化为基本的数据类型。....accepted_renderer 用于将会返回的响应内容的渲染器实例。 从视图返回响应之前由 APIView 或 @api_view 自动设置。...从视图返回响应之前由 APIView 或 @api_view 自动设置。

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

    restful api接口规范和服务调用的区别_rest接口规范

    组合实体不是first-class的实体,它的生命周期完全依赖父实体,无法独立存在,在实现上通常是对数据库表中某些列的抽象,不直接对应表,也无id。...业务类异常必须提供2种信息: 如果抛出该类异常,HTTP 响应状态码应该设成什么; 异常的文本描述; 在Controller层使用统一的异常拦截器: 设置 HTTP 响应状态码:对业务类异常,用它指定的...异步任务 对耗时的异步任务,服务器端接受客户端传递的参数后,应返回创建成功的任务资源,其中包含了任务的执行状态。客户端可以轮训该任务获得最新的执行进度。...URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API,返回404 not found 或 410 gone;对迁移的API,返回 301 重定向。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.3K10

    众多Python Web框架比较,哪个适合你,你就用哪个!

    如果你正在构建一个快速而又简单的REST API,那么你将不需要任何完整的面向用户的应用程序所需的管道和连接,该应用程序具有用户登录、表单验证和上传处理就可以了。...如果要执行表单验证,可以使用从简单的CSRF保护到返回详细错误反馈的完整逐个字段验证机制的所有内容。 如果没有强大的文档可以使用像Django那样丰富和广泛的功能。...示例:数据验证机制,表单处理,响应缓存和用户验证。在所有这些情况下,Weppy采取“恰到好处”的方法。...也不仅限于硬连线路径;可以动态创建它们。可以通过Bottle框架中的对象访问和操作请求和响应数据,cookie,查询变量,来自POST操作的表单数据,HTTP标头和文件上载。...Falcon应用程序所要做的就是指出哪些函数映射到哪些API端点。从给定端点返回JSON只需设置路由并通过Python标准库中的json.dumps函数从中返回数据。

    6.4K20

    前后端分离开发,RESTful 接口如何设计

    ,并返回响应代码201——表示已创建新资源。...成功处理后,服务器将返回 201 HTTP 响应代码,其中包含一个 “Location” 头,代表新创建的资源的位置。 注意: 有些人将 POST 视为创建资源的 GET 会话。...由于是更新资源的部分信息,POST 既不安全也不幂等。 POST 的最后一种常见用法是提交查询。将查询的内容或表单内容进行 URL 编码后提交给服务执行查询。...4.3 PUT 由于 HTML 表单目前还不支持 PUT,许多开发人员基本上会忽略 PUT 动词。然而,PUT 有一个重要作用并且是 RESTful 系统完整愿景的一部分。...注意:试试响应代码 418,它会返回简洁有力的回复:"我是一个茶壶。"

    3.1K01

    理解GET和POST区别的全面指南

    REST API原理与API通信要理解GET和POST的作用,首先需要理解REST API的原理及其如何操作。REST(表现层状态转移)是一种设计风格,用于通过HTTP方法管理和操作资源。...处理完成后,服务器将包含所请求数据或处理结果的 响应 返回给客户端。客户端 然后处理此响应。客户端与服务器之间通过HTTP或HTTPS协议进行交换,推动了API的功能。...客户端可以利用服务器的功能,服务器则响应客户端的请求,构成了API交互的核心。在这个框架中,GET和POST HTTP方法定义了服务器应该如何处理请求以及它应该返回的响应格式。什么是GET和POST?...让我们通过以下各方面的比较,详细分析这些区别:属性GETPOST目的获取资源创建、更新或删除资源数据存储方式存储在查询字符串中存储在请求体中URL长度限制有限制没有限制浏览器历史记录记录在URL中不记录缓存可缓存不可缓存安全性安全性较差安全性较好书签可以添加书签无法添加书签使用场景...幂等性的区别GET:幂等(多次相同请求返回相同结果)。POST:非幂等(多次相同请求可能导致副作用)。缓存的区别GET:请求结果可以缓存。POST:请求结果通常不缓存。

    56310

    API自动化测试指南

    大多数功能测试都涉及测试网页或表单等用户界面,而API测试涉及绕过用户界面并通过调用其API直接与服务程序通信。...3xx –响应范围在300-399之间表示未执行请求-需要采取进一步的措施。4xx –响应范围为400-499,表示请求不完整,可能需要更多信息。...当围绕REST标准设计服务时,可以说使该服务“ RESTful”。 REST API由大量资源组成。这称为资源模型,它利用统一资源标识(URI)。...URI语法允许您指定一个查询,该查询从REST API返回所需的信息。REST系统的主要元素是: 资源是客户端请求从主机获取的信息,例如网页或数据库记录。 资源标识符是用于命名资源的URI。...REST API测试(如何创建REST API测试) 什么是JSON JSON代表JavaScript Object Notation,并且被设计为轻量级的数据交换格式。

    2.3K00

    从入门到_精通_Django REST Framework-(二)

    from rest_framework import serializers# 示例模型class User(models.Model): username = models.CharField(...非模型数据:处理不与数据库直接关联的数据(如聚合结果)定制字段:需要完全控制字段行为时混合数据源:组合多个模型的数据性能优化:仅暴露必要字段✅ 使用场景对比:场景 SerializerModelSerializer...非模型数据 ✅ ❌ 三....提升可读性)文件与二进制:处理上传文件或二进制内容(如头像用 ImageField)日期时间扩展:精细化控制日期时间格式(如 API 返回 ISO8601 格式时间)特殊用途字段:实现业务定制逻辑(如...版本创建不同的 Serializer文档注释:使用 help_text 参数生成 API 文档

    68600

    python教程

    以Django提供表单(Form)类和模型表单(ModelForm)类相同的方式,REST 框架包括了实例化(Serializer)类和模型实例化(ModelSerializer)类。...响应对象 REST 框架也介绍了Response对象,它是一类用未渲染内容和内容协商来决定正确的内容类型并把它返回给客户端的模板响应(TemplateResponse)。...相似地,虽然我们可以在响应对象中带数据,但允许REST框架渲染响应成正确的内容类型。...Browsability 因为API是基于客户端请求来选择响应内容的类型,所以默认情况下,在Web浏览器访问资源时,API返回HTML格式的资源。这语序API返回完全可以网页浏览的HTML。...在我们的模型中添加信息 我们打算对我们的Snippet模型类做些改变。首先,让我们添加几个字段。其中一个字段将显示出哪个用户创建里snippet数据。另一个字段将用于HTML代码高亮。

    6.3K10

    4种主流的API架构风格对比

    因此,API 提供者和 API 使用者都可以独立发展,而这并不会阻碍他们的交流。 (理查森成熟度模型作为实现真正完整且有用的 API 架构的目标。...这使得 REST 在理论上很简单,但在实践中却很困难。 庞大的负载:REST 会返回大量丰富的元数据,以便客户端可以仅从响应中了解有关应用程序状态的所有必要信息。...响应过度和响应不足问题。REST 的响应包含的数据会过多或不足,通常会导致客户端需要发送另一个请求。 4 REST 的用例 管理 API。...在用于连接不需要查询灵活性的资源驱动型应用时,REST 是一种非常有效的方法。 GraphQL:仅请求所需要的数据 REST API 需要被多次调用才能返回所需要的资源。...API 向服务端发送一个庞大的查询,该 API 返回一个仅包含我们所需数据的 JSON 响应。

    3K30

    flask 应用程序编程接口(API)最后一节

    jsonify()函数返回一个默认状态码为200的瓶Response对象,因此在创建响应之后,我将状态码设置为对应的错误代码。 API将返回的最常见错误将是代码400,代表了“错误的请求”。...我为这个请求返回的响应将是新用户的表示,因此使用产生to_dict()它的有效格式。创建资源的POST请求的响应状态代码应该是201,即创建新实体时使用的代码。...如果任何验证检查失败,那么我会像之前一样返回400错误给客户端。 一旦数据验证通过,我可以使用User模型的from_dict()方法导入客户端提供的所有数据,然后将更改提交到数据库。...在创建新令牌之前,此方法会检查当前分配的令牌在过期之前是否至少还剩一分钟,并且在这种情况下会返回现有的令牌。 使用令牌时,有一个策略可以立即使令牌失效总是总是一件好事,而不是仅依赖终止日期。...之后提交数据库会话,以确保将更改写入数据库。这个请求的响应没有正文,所以我可以返回一个空字符串。状态代码为204,该代码用于成功请求却没有响应主体的响应。

    6.2K10

    Asp.net web api 知多少

    客户端初始化请求到服务器,服务器负责处理请求并返回响应。 这些请求和响应都是围绕这些资源的表示形式进行传递。 Q2. 解释下REST原则? Ans....WCF、WEB API、 WCF REST 、Web Service之间的区别是? Ans. 主要区别是: Web Service 基于SOAP协议,返回xml数据格式。 仅支持HTTP协议。...当您要通过HTTP创建面向资源的服务时选择WEB API,因为其可以使用完整的 HTTP的特性(如URI,请求/响应头,缓存,版本控制,各种内容格式)。...主要有以下区别: ASP.NET MVC 用来创建web应用返回视图和数据;但是ASP.NET WEB API 是用来创建完整的HTTP服务,仅返回数据无视图返回。...您可以在单个项目中混合使用WEB API和MVC控制器来处理高级AJAX请求并以JSON,XML或任何其他格式返回数据,并构建完整的HTTP服务。通常,这将是WEB API自承载。

    6.7K50

    API 架构选哪种?SOAP、REST、GraphQL 与 RPC 全方位对比分析

    因此,API 提供者和 API 使用者都可以独立发展,而这并不会阻碍他们的交流。 理查森成熟度模型作为实现真正完整且有用的 API 架构的目标。...这使得 REST 在理论上很简单,但在实践中却很困难。 庞大的负载:REST 会返回大量丰富的元数据,以便客户端可以仅从响应中了解有关应用程序状态的所有必要信息。...响应过度和响应不足问题。REST 的响应包含的数据会过多或不足,通常会导致客户端需要发送另一个请求。 REST 的用例 管理 API。...在用于连接不需要查询灵活性的资源驱动型应用时,REST 是一种非常有效的方法。 4GraphQL:仅请求所需要的数据 REST API 需要被多次调用才能返回所需要的资源。...API 向服务端发送一个庞大的查询,该 API 返回一个仅包含我们所需数据的 JSON 响应。

    36620

    4种主流的API架构风格对比

    因此,API 提供者和 API 使用者都可以独立发展,而这并不会阻碍他们的交流。 ? 理查森成熟度模型作为实现真正完整且有用的 API 架构的目标。...这使得 REST 在理论上很简单,但在实践中却很困难。 庞大的负载:REST 会返回大量丰富的元数据,以便客户端可以仅从响应中了解有关应用程序状态的所有必要信息。...响应过度和响应不足问题。REST 的响应包含的数据会过多或不足,通常会导致客户端需要发送另一个请求。 REST 的用例 管理 API。...在用于连接不需要查询灵活性的资源驱动型应用时,REST 是一种非常有效的方法。 4GraphQL:仅请求所需要的数据 REST API 需要被多次调用才能返回所需要的资源。...API 向服务端发送一个庞大的查询,该 API 返回一个仅包含我们所需数据的 JSON 响应。 ?

    3K20

    activiti工作流开发_flowable工作流

    同样,activiti-rest是一个webapp,它提供REST API,用于对流程,任务等执行任何操作。 3....当我们点击流程正在等待的任务时,我们可以看到我们创建的表单: 如果我们点击查看图,这将不仅向我们展示过程图也强调,完成的任务和正在等待的人。...Activiti REST Activiti为Activiti Engine提供REST API,可以通过将activiti-rest.war文件部署到像Apache Tomcat这样的servlet容器来安装...”, “activityId”: null, “variables”: [], “tenantId”: “”, “name”: null, “completed”: false } 我们可以使用上一个响应返回的流程实例的...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.1K40

    DRF视图详解:从基础视图到通用视图实践指南

    常用通用视图ListAPIView:获取列表数据(GET)CreateAPIView:创建数据(POST)RetrieveAPIView:获取单个数据(GET)UpdateAPIView:更新数据(PUT...() 方法,可以实现动态过滤查询集,例如只返回当前登录用户的数据:def get_queryset(self): # 只返回当前用户创建的数据 return Student.objects.filter...数据查询相关方法get_queryset(self):返回视图使用的查询集,是获取数据的主要入口。...() # 仅返回当前用户发布的文章get_object(self):返回详细视图所需的单个对象实例。...get_paginated_response(self, data):返回分页格式的响应对象,配合分页功能使用。您正在阅读的是《Django从入门到实战》专栏!关注不迷路~

    31810

    Django-DRF | HttpResponse 响应

    Django REST框架构建Web API。...Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。...HttpResponse 对象属性来设置响应体、状态码: content: 表示返回的内容 status_code: 返回的HTTP响应状态码 响应头可以直接将 HttpResponse 对象当作字典进行响应头键值对的设置...json 数据,可以使用 JsonResponse 来构造响应对象 将数据转换为 json 字符串 设置响应头 Content-Type 为 application/json from django.http

    1.2K10
    领券