类视图与函数视图的区别17 Mar 2025 | 5 分钟阅读 Django 是最受欢迎的 Web 开发框架之一。它之所以受欢迎,是因为它提供了许多内置功能,可以节省开发者大量时间。如果您是初学者,理解项目的流程需要一些时间。但一旦您获得一些经验,就可以轻松理解功能的执行。 Django 基于 MVT 模式,即 Model View Template。我们主要使用两种视图:基于函数的视图和基于类的视图。如果您是初学者,必须了解基于函数的视图 (FBV)。 当 Django 引入时,它仅支持基于函数的视图,但后来 Django 添加了基于类的视图的概念。基于类的视图减少了代码的冗余。它还支持 Django 的 DRY 原则。 在本教程中,我们将深入学习 FBV 和 CBC 之间有什么不同。我们可以使用基于函数的视图和基于类的视图执行相同的任务。但这两种方法是不同的。 Django 视图的要求以下是关于 Django 视图应记住的几点。
让我们详细解释创建视图的方式。 基于函数的视图基于函数的视图简单易用,初学者很容易理解。它有助于理解 Django 基础的核心概念。FBV 提供了从头开始理解 Django 概念的优势。 Django 项目通常具有 CRUD 操作,因此我们需要不必要地为多个操作实现相同的代码,这就是 Django 类视图出现的原因。类视图的创建是为了解决代码冗余问题。让我们理解 FBV 的以下优缺点。 基于函数的视图的优点FBV 的优点如下。
基于函数的视图的缺点FBV 的缺点如下。
让我们来理解 FBV 的以下实现。 代码 基于类的视图基于类的视图是在 Python 中创建视图的高级方法。它作为 Python 对象而不是函数在项目中实现。它不是 FBV 的替代品,但它们提供了优于基于函数的视图的优势。它减少了代码重复,并处理了删除和添加项目等基本操作。 初学者理解类视图的概念会有些困难。您应该查看文档,并需要仔细研究。如果您清楚地了解了基于函数的视图,就可以转向基于类的视图。 让我们来理解 Python 中视图的以下优缺点。 基于类的视图的优点以下是基于类的视图的优点。
基于类的视图的缺点以下是基于类的视图的缺点。
让我们看看类视图的实现。 我们调用 as_view() 方法为用户提供服务。as_view() 方法会调用 dispatch() 方法来确定需要执行哪个类方法,具体取决于 HTTP 请求。我们可以按以下方式实现它。 当我们使用 Django 的通用类视图时,我们可以覆盖诸如 get_form_class 和 get_template_names 之类的辅助方法。我们也可以在这些点添加一些自定义逻辑,而不仅仅是覆盖类属性。 ModelFormMixin 是一个很好的例子。form_valid 方法被覆盖,并将更新后的值存储在 self.object 中。form_valid 方法被覆盖。 Django 通用类视图借助通用类视图,我们可以执行一些重要任务,例如创建新对象、列表视图、分页、表单处理、归档视图、删除视图等。 我们可以通过导入 django.views.generic. 来实现。通用类视图是执行一些基本任务的出色方式。它加快了开发过程。 Django 提供了一组 mixins 和通用类视图。借助这些工具,我们可以解决 Web 开发中最常见的任务。 它使我们不必一次又一次地编写相同的代码。在下面的示例中,我们可以修改 MyCreateView 以继承自 django.views.generic.CreateView。 正如我们所观察到的,与之前的视图相比,它所需的代码非常少。django.views.generic.CreateView 附带了许多内置功能和快捷方式。让我们讨论更多细节。 默认情况下,模板应位于 /<modelname>/<modelname>_form.html。我们可以通过设置类属性 template_name 和 template_name_sufix 来修改它。
结论关于哪个视图最好使用——类视图还是函数视图——这是一个开发者之间热烈的争论。我们已经讨论了这两种视图的用途、缺点和优点。这完全取决于项目的需求以及您的舒适度。在某些情况下,类视图表现更好,在某些情况下,函数视图更好。 |
在本教程中,我们将编写 Python 程序来计算可能三角形的数量。我们给出了一个未排序的数组,我们需要确定可以使用无序正整数数组中的三个不同值创建多少个三角形。一个三角形...
7 分钟阅读
interpolation() 的基本用法 下面的 pandas.DataFrame 用作示例。示例:import pandas as pd #这里,我们导入 pandas 库作为 pd import numpy as np #这里,我们导入 numpy 库作为...
5 分钟阅读
Python 函数在 Python 编程语言中是第一类对象。这意味着函数可以赋值给变量,返回另一个函数,最重要的是,可以将另一个函数作为参数。Python 装饰器的概念基于函数的这些特性。它...
5 分钟阅读
Selenium 是一个用于自动化互联网包的强大工具,允许测试人员和开发人员以编程方式与网页交互、执行操作和提取数据。在 Selenium Python 中,create_web_element 方法是一个鲜为人知的瑰宝,可以显著增强您的网络自动化脚本。在本文中,...
阅读 4 分钟
有时 Web 应用程序需要使用 Python 语言在一个函数中显示两个值。这对于复杂功能、数学运算和数据库信息的显示是必要的。Python 提供了多种方法来返回两个值。使用对象 使用元组 使用列表 使用数据类 使用字典 使用对象 它...
5 分钟阅读
在本教程中,我们将编写 Python 程序来查找给定两个字符串中不常见的字符。不常见的字符是指在一个字符串中存在或在另一个字符串中存在但不在两个字符串中都存在的字符。给定的字符串是小写字符,并且...
阅读 6 分钟
到目前为止,我们已经讨论了Python中各种转换。在本教程中,我们将学习另一种转换,即将字符串转换为Python中的列表。我们将使用以下方法来实现我们的目标:使用split(),使用带分隔符的split(),使用strip(),使用map()。让我们讨论每种方法……
阅读 4 分钟
本文将讨论range()和xrange()函数是什么,它们在Python中如何使用,以及各自的基本特性。Python中可用的函数可以在我们程序的多个部分使用,因为它们减少了代码量...
阅读 3 分钟
Python 中的 JSON Schema JSON Schema 是一种用于验证 JSON 文档的 Python 语言。它包含键/值对,其中每个键用于指定特定 JSON 数据的结构。使用 JSON Schema 可以提供易于理解、高质量的数据和文档。JSON Schema 是...
5 分钟阅读
Hackerrank是一个流行的在线编程挑战平台,平台上最流行的问题之一是“最大矩形”问题。这个问题要求你在给定的直方图中找到最大的矩形区域。在本文中,我们将带你了解...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India