如何使用 Django REST framework 构建 RESTful API

什么是 RESTful API

RESTful API 是一种基于 HTTP 协议的 Web API 设计风格,它的核心思想是将资源和操作以 URL 和 HTTP 方法的形式进行定义,使得 API 的使用者可以通过简单的 HTTP 请求来访问和操作资源。RESTful API 的设计风格具有良好的可扩展性、可重用性和可维护性,因此在 Web 开发中得到了广泛的应用。

Django REST framework 简介

Django REST framework 是一个基于 Django 的 Web API 框架,它提供了一系列的工具和库,帮助开发者快速地构建 RESTful API。Django REST framework 的主要特点包括:

  • 提供了基于类的视图和序列化器,让开发者可以快速地定义 API 视图和数据模型;
  • 支持多种认证方式和权限控制;
  • 支持多种数据格式和内容协商;
  • 提供了一系列的工具和插件,方便开发者进行 API 的测试、文档生成和版本控制等。

安装 Django REST framework

首先,需要安装 Django REST framework。可以通过 pip 命令进行安装:

--- ------- -------------------

创建 Django 项目

接下来,创建一个 Django 项目。可以使用 Django 自带的命令行工具来创建:

------------ ------------ ---------

创建 Django 应用

在 Django 项目中,每个应用都是一个独立的模块,可以通过应用来组织和管理代码。可以使用 Django 自带的命令行工具来创建应用:

------ --------- -------- -----

配置 Django REST framework

在项目的 settings.py 文件中,需要配置 Django REST framework:

-------------- - -
    - ---
    -----------------
    --------
-

-------------- - -
    ----------------------------- -
        --------------------------------------
    --
    --------------------------------- -
        ------------------------------------------------------
        ----------------------------------------------------
    --
-

在这里,我们配置了默认的权限和认证方式。这里使用了 AllowAny 权限和 SessionAuthentication、BasicAuthentication 认证方式。这样,我们的 API 就可以使用会话和基本认证方式进行访问了。

定义模型

在 Django 中,模型是用来表示数据的类。可以在应用的 models.py 文件中定义模型:

---- --------- ------ ------

----- -------------------
    ----- - --------------------------------
    ------ - --------------------------------
    ----- - --------------------------------- -----------------

在这里,我们定义了一个 Book 模型,包括标题、作者和价格三个字段。

定义序列化器

在 Django REST framework 中,序列化器是用来将模型转换为 JSON 或其他格式的工具。可以在应用的 serializers.py 文件中定义序列化器:

---- -------------- ------ -----------
---- ------------ ------ ----

----- --------------------------------------------
    ----- -----
        ----- - ----
        ------ - ------ -------- --------- --------

在这里,我们定义了一个 BookSerializer 序列化器,将 Book 模型转换为 JSON 格式,并指定了需要序列化的字段。

定义视图

在 Django REST framework 中,视图是用来处理 HTTP 请求的类。可以在应用的 views.py 文件中定义视图:

---- -------------- ------ --------
---- ------------ ------ ----
---- ----------------- ------ --------------

----- -------------------------------------
    -------- - ------------------
    ---------------- - --------------

----- --------------------------------------------------
    -------- - ------------------
    ---------------- - --------------

在这里,我们定义了两个视图类:BookList 和 BookDetail。BookList 用来处理 GET 和 POST 请求,返回所有的图书列表或创建新的图书;BookDetail 用来处理 GET、PUT、PATCH 和 DELETE 请求,返回指定的图书详情或更新、删除指定的图书。

定义 URL

在 Django 中,URL 是用来指定视图和模型之间的映射关系的。可以在应用的 urls.py 文件中定义 URL:

---- ----------- ------ ----
---- ----------- ------ --------- ----------

----------- - -
    -------------- ------------------- ------------------
    ----------------------- --------------------- --------------------
-

在这里,我们定义了两个 URL:/books/ 和 /books/int:pk/。这两个 URL 分别映射到 BookList 和 BookDetail 视图类。

测试 API

最后,我们可以使用浏览器或其他 HTTP 客户端工具来测试 API。例如,可以使用 curl 命令来测试:

---- ----------------------------

这个命令将返回所有的图书列表。

---- -- ---- -- -------------- ----------------- -- ---------- -------- --------- ---------- -------- --------- ----------------------------

这个命令将创建一本新的图书。

---- ------------------------------

这个命令将返回指定的图书详情。

总结

使用 Django REST framework 构建 RESTful API 是一种快速、高效、可扩展的方式。在本文中,我们介绍了如何使用 Django REST framework 构建 RESTful API,包括安装 Django REST framework、创建 Django 项目、创建 Django 应用、配置 Django REST framework、定义模型、定义序列化器、定义视图、定义 URL 和测试 API。希望本文对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/660fb1e5d10417a2220524fb