# 基于类的视图 *Django 的基于类的视图是一个受欢迎的背离旧风格的视图。 —— Reinout van Rees* REST framework 提供了一个 `APIView` 类,它是 Django 的 `View` 类的子类。 `APIView` 类与常规 `View` 类不同,有以下几种方法: - 传递给处理程序方法的请求将是 REST framework 的 `Request` 实例,而不是 Django 的 `HttpRequest` 实例。 - 处...
阅读全文>>2018年6月28日 20:28 作者:nancy 分类:[Django] 2824
# 响应 (Responses) *与基本的 HttpResponse 对象不同,TemplateResponse 对象保留了视图提供的用于计算响应的上下文的详细信息。在响应过程中,直到需要时才会计算最终的响应输出。—— Django 文档* REST framework 通过提供一个 `Response` 类来支持 HTTP 内容协商,该类允许您根据客户端请求返回可渲染为多种内容类型的内容。 `Response` 类的子类是 Django 的 `SimpleTemplate...
阅读全文>>2018年6月27日 21:46 作者:nancy 分类:[Django] 2213
# Requests *如果你正在做基于 REST 的 Web 服务的东西...你应该忽略 request.POST。—— Malcom Tredinnick,Django 开发人员小组* REST framework 的 `Request` 类扩展了标准的 `HttpRequest`,增加了对 REST framework 灵活的请求解析和请求认证的支持。 *** # 请求解析 REST framework 的 Request 对象提供了灵活的请求解析,允许您使用 JS...
阅读全文>>2018年6月26日 20:31 作者:nancy 分类:[Django] 3050
# 快速开始 我们将创建一个简单的 API 来允许管理员用户查看和编辑系统中的用户和组。 ## 环境 - Python 3.5.2 - Django 2.0.6 - djangorestframework 3.8.2 - httpie 0.9.9 ## 项目设置 创建一个名为 `tutorial` 的新 Django 项目,然后创建一个名为 `quickstart` 的新应用。 ```python # 创建项目目录 mkdir tutorial ...
阅读全文>>2018年6月25日 22:39 作者:nancy 分类:[Django] 5696
# 教程 7:模式和客户端库 schema 是一个机器可读文档,描述可用的 API 端点,它们的 URL 以及它们支持的操作。 Schemas 可以是自动生成文档的有用工具,也可以用来驱动可以与 API 交互的动态客户端库。 ## Core API 为了提供 schema 支持,REST framework 使用 [Core API](www.coreapi.org)。 Core API 是用于描述 API 的文档规范。它用于提供可用端点的内部表示格式和 API 公开...
阅读全文>>2018年6月21日 22:48 作者:nancy 分类:[Django] 2299
# 教程 6:ViewSets 和路由器 REST framework 包括一个用于处理 `ViewSets` 的抽象,它允许开发人员集中精力对 API 的状态和交互进行建模,并保留 URL 结构,根据通用约定自动处理。 `ViewSet` 类与 `View` 类几乎相同,只是它们提供诸如 `read` 或 `update` 等操作,而不提供诸如 `get` 或 `put` 等方法处理程序。 一个 `ViewSet` 类最后时刻只绑定一组方法处理程序,当它被实例化为一组视图时...
阅读全文>>2018年6月19日 21:42 作者:nancy 分类:[Django] 2533
# 教程 5:关系和超链接 API 目前我们的 API 中的关系是通过使用主键来表示。在本教程的这一部分中,我们将改进 API 的内聚力和可发现性,而不是使用超链接来进行关系。 ## 为我们的 API 的根地址创建端点 现在我们有 'snippets' 和 'users' 端点,但我们没有一个指向我们 API 的入口。要创建一个,我们将使用基于函数的常规视图和我们前面介绍的 `@api_view` 装饰器。在你的 `snippets / views.py` 中添加: ```py...
阅读全文>>2018年6月18日 21:38 作者:nancy 分类:[Django] 2438
# 教程 4:身份验证和权限 目前我们的 API 对谁可以编辑或删除 snippet 代码没有任何限制。我们希望有一些更高级的行为来确保: - snippets 代码始终与创建者相关联。 - 只有经过身份验证的用户可以创建 snippets。 - 只有 snippets 的创建者可以更新或删除它。 - 未经身份验证的请求应具有完全只读访问权限。 ## 将信息添加到我们的模型 我们将对 `Snippet` 模型类进行一些更改。首先,我们添加几个字段。其中一个字段将用于表...
阅读全文>>2018年6月17日 23:19 作者:nancy 分类:[Django] 3084
# 教程 3:基于类的视图 我们还可以使用基于类的视图来编写 API 视图,而不是基于函数的视图。正如我们将看到的,这是一个强大的模式,可以让我们重用通用功能,并帮助我们保持代码 [DRY](https://en.wikipedia.org/wiki/Don't_repeat_yourself)。 ## 使用基于类的视图重写我们的 API 我们将首先将基于类的视图重写根视图。所有这些都涉及一些对 `views.py` 的重构。 ```python class SnippetL...
阅读全文>>2018年6月16日 23:32 作者:nancy 分类:[Django] 5035
# 教程 2:请求和响应 从现在开始,我们将真正开始接触 REST framework 的核心。 我们来介绍几个基本的构建模块。 ## 请求对象 (request objects) REST framework 引入了一个扩展了常规 `HttpRequest` 的 `Request` 对象,并提供了更灵活的请求解析。`Request` 对象的核心功能是 `request.data` 属性,它与 `request.POST` 类似,但对于使用 Web API 更加有用。 ```p...
阅读全文>>2018年6月14日 22:42 作者:nancy 分类:[Django] 5586
你还没有登录,请 或者