基于 Django 的 RESTful API 构建实践

阅读时长 9 分钟读完

在现代 Web 应用程序中,RESTful API 已经成为了不可或缺的一部分。RESTful API 的设计可以让前端与后端之间的通信更加简单、高效和可扩展。Django 是一个强大的 Web 应用程序框架,它提供了许多有用的工具和功能,可以帮助我们快速构建 RESTful API。在本文中,我们将介绍如何使用 Django 构建 RESTful API,包括如何处理请求、认证和授权、序列化和反序列化等方面。

准备工作

在开始构建 RESTful API 之前,我们需要先安装 Django 和其他必要的库。可以使用 pip 来安装它们:

  • Django:Web 应用程序框架。
  • Django Rest Framework:一个用于构建 RESTful API 的框架。
  • Django Filter:一个用于过滤查询结果的库。

构建 RESTful API

创建 Django 项目和应用

首先,我们需要创建一个 Django 项目和应用。可以使用以下命令来创建它们:

其中,project_name 是项目的名称,app_name 是应用的名称。

配置应用

接下来,我们需要在 settings.py 文件中配置应用。在 INSTALLED_APPS 中添加应用的名称:

MIDDLEWARE 中添加以下中间件:

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

DATABASES 中配置数据库:

创建模型

接下来,我们需要创建模型。模型用于定义数据结构,它们将被转换为数据库表。在 models.py 文件中添加以下代码:

创建序列化器

在 Django Rest Framework 中,序列化器用于将模型转换为 JSON 或其他格式。在 serializers.py 文件中添加以下代码:

创建视图

视图用于处理请求并返回响应。在 views.py 文件中添加以下代码:

创建 URL

最后,我们需要将视图映射到 URL。在 urls.py 文件中添加以下代码:

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


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

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

运行应用

现在,我们已经完成了 RESTful API 的构建。可以使用以下命令来启动应用:

在浏览器中访问 http://localhost:8000/books/,就可以看到我们刚刚创建的 API。

认证和授权

在实际应用程序中,我们通常需要对 API 进行认证和授权。Django Rest Framework 提供了许多认证和授权选项,包括基于令牌的认证、基于 Session 的认证、基于 OAuth2 的认证等。

基于令牌的认证

基于令牌的认证是一种常见的认证方式,它将令牌作为凭证进行验证。可以使用以下命令来安装 djangorestframework-simplejwt 库:

settings.py 文件中添加以下配置:

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

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

urls.py 文件中添加以下代码:

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


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

现在,我们已经完成了基于令牌的认证的配置。可以使用以下命令来测试它:

该命令将返回一个带有访问令牌和刷新令牌的 JSON 响应。

基于权限的授权

基于权限的授权是一种常见的授权方式,它根据用户的权限来限制其访问资源的方式。Django Rest Framework 提供了许多权限类,包括 IsAuthenticated、IsAdminUser、AllowAny 等。

views.py 文件中添加以下代码:

现在,只有已经认证的用户才能访问 API。

过滤和搜索

在实际应用程序中,我们通常需要对查询结果进行过滤和搜索。Django Rest Framework 提供了许多过滤器和搜索类,可以帮助我们实现这些功能。

views.py 文件中添加以下代码:

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


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

现在,我们可以使用以下命令来测试过滤和搜索功能:

结论

在本文中,我们介绍了如何使用 Django 构建 RESTful API,包括如何处理请求、认证和授权、序列化和反序列化等方面。我们还介绍了如何使用基于令牌的认证、基于权限的授权、过滤和搜索等技术来增强 API 的功能。希望这篇文章能够帮助您更好地理解 Django 和 RESTful API 的构建实践。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6759408036908a98ca6be488

纠错
反馈