如何在 Django 中创建 RESTful API

阅读时长 8 分钟读完

什么是 RESTful API

RESTful API 是一种基于 HTTP 协议的 Web 服务,它是一种轻量级架构,具有易于扩展、跨平台和可重用的特性。RESTful API 的核心思想是将资源映射到 URL,通过 HTTP 规范的请求方法(GET、POST、PUT、DELETE 等)对资源进行操作。

Django REST framework

Django REST framework 是一个基于 Django 框架的 Web API 开发工具包。它具有强大的 serializer(序列化器)、authentication(身份验证)、permission(权限控制)等功能,可以帮助我们快速地创建 RESTful API。

以下是如何在 Django 中创建 RESTful API 的步骤:

1. 安装 Django REST framework

可以使用 pip 安装 Django REST framework:

2. 创建 Django 应用程序

在 Django 中创建一个新的应用程序:

3. 配置 serializers

serializer 用于将 Django ORM 中的模型转化为 JSON 串,同时可以在接受到 JSON 串的时候将其转化回 Django ORM 中的模型。例如,我们定义一个模型:

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

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

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

则可以为该模型创建一个 serializer:

4. 创建视图函数

视图函数用于接收请求并返回相应的数据。在 Django REST framework 中,我们可以使用 APIView 类或者 ViewSet 类来定义视图函数。

使用 APIView 类

如果我们使用 APIView 类来定义视图函数,则需要自己处理请求和响应。例如,我们希望创建一个视图函数来获取所有书籍:

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

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

上述视图函数中,我们首先使用 Book.objects.all() 获取所有的书籍对象,然后使用 BookSerializer 将书籍对象序列化为 JSON 串,并使用 Response 将 JSON 串返回给客户端。

使用 ViewSet 类

如果我们使用 ViewSet 类来定义视图函数,则会自动帮我们处理请求和响应。例如,我们创建一个视图函数来获取所有书籍:

上述视图函数中,我们首先使用 queryset 定义查询集,然后使用 serializer_class 定义 serializer。

5. 配置 URL 路由

在 Django REST framework 中,我们可以使用路由来映射 URL 和视图函数。例如,我们要将 /api/books/ 映射到 BookList 视图函数,可以使用以下代码:

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

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

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

6. 运行应用程序

在配置完路由后,就可以启动应用程序了:

现在,我们就成功地创建了一个 RESTful API。

示例代码

以下是一个完整的 Django 应用程序,其中包括了完整的 serializers、视图函数和路由配置。

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

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

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

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

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

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

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

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

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

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

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

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

总结

在本文中,我们介绍了如何在 Django 中创建 RESTful API。我们首先介绍了 RESTful API 的核心思想和 Django REST framework 的优势,然后详细介绍了创建 RESTful API 的步骤,包括 serializer、视图函数和路由配置,最后给出了一个完整的示例代码。希望本文对您有所启发,欢迎留言分享您的想法和经验。

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

纠错
反馈