理解 Django REST framework 的类视图

阅读时长 6 分钟读完

什么是 Django REST framework

Django REST framework 是一个用于构建 Web API 的库,它基于 Django,且拥有许多 Django 框架的优点。它使得构建 Web API 变得更加快捷、易于维护和扩展。

Django REST framework 提供了许多用于构建 Web API 的工具,其中类视图是其中一个更加强大的工具。

什么是类视图

在 Django 中,视图是处理浏览器请求并返回相应内容的函数。在 Django REST framework 中,除了函数视图之外,还有一种更加强大的视图,那就是类视图。

类视图是一个基于类的视图系统,它将 HTTP 请求分配到类的方法上。相比于函数视图,类视图更加具有表现力和可重用性。

类视图使用类来编写视图,而不是使用函数,所以使用类视图可以提供更加严谨和灵活的代码。另外,类视图提供了许多内置方法,可以节省开发时间和精力。

Django REST framework 类视图的分类

Django REST framework 的类视图可以分为以下三类:

API View

API View 是普通的基于类的视图,它可以轻松地处理最基本的 HTTP 请求。API View 提供了诸如安全、身份认证、限流等功能。

Generic View

Generic View 在 API View 的基础上提供了许多常见 API 操作的快速实现。例如,我们可以继承 ListAPIView 来创建一个列表视图,它可以很方便地处理列表数据的显示和分页。

Viewset

Viewset 是 Django REST framework 提供的一个更加高效的方式来编写 API 视图。Viewset 将一些常见 API 操作封装成一个类中的方法,并且在路由设置上也提供了方便。

类视图的优势

相比于 Django 中的函数视图,Django REST framework 的类视图具有以下优势:

更灵活的代码组织

类视图不仅提供了一种更加清晰、可读性更强的代码组织方式,还能更好地避免视图函数的名字冲突问题。

代码复用

类视图通常可以更好地重用代码,因为它支持继承和多重继承等 Python 特性。

更好的可读性

类视图可以提高代码的可读性,特别是在我们使用内置通用类视图时。这些视图以更加直观的方式展示了操作数据的不同方式。

更好的逻辑封装

类视图具有更好的逻辑封装,我们可以通过继承的方式来封装一些通用的逻辑,例如类认证、类限流等模块。

如何使用 Django REST framework 类视图

下面我们举一个例子来演示如何利用 Django REST framework 的类视图创建一个 API 视图。比如我们需要创建一个用于展示学生信息的视图。

以上实现方式采用 Django REST framework 的 API View:

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

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

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

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

以上实现方式采用 Django REST framework 的 Generic View:

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

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

以上实现方式采用 Django REST framework 的 Viewset:

总结

类视图是 Django REST framework 提供的一个更加强大和灵活的构建 Web API 的工具。通过合理应用,它可以让我们用更少的时间和精力来开发出高质量的 API 服务。不同的类视图提供不同的功能,根据业务实际需求选择不同的视图类型,将会更加便利。

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

纠错
反馈