首先应该学习基于功能的视图的3个原因

您是Django的新手,您需要掌握许多不熟悉的概念。对于初学者来说,常见的困惑来源是不同类型的视图:基于函数的视图,基于类的视图,通用视图。您可能对哪种类型的视图最适合您入门或者将来应该使用哪种视图感到困惑。

首先,您现在不需要了解所有类型的视图,只需从一个视图开始。您也不必担心哪种类型是最好的,因为在此过程中,您现在需要选择一种可以帮助您以最简单的方式学习尽可能多的选项。对于初学者来说,最好的视图类型是基于函数的视图(FBV)。为什么要从FBV开始,有三个原因。

函数比类更容易抽象
Django中基本上有两种视图:基于函数的视图和基于类的视图。它们之间的区别归结为功能和面向对象(OOP)范式之间的区别。通常,OOP使初学者感到困惑,因为它是一个更复杂的抽象。

另一方面,您会及早学习功能,并且由于掌握的概念较少,因此更容易学习。 FBV是一个非常薄且直接的抽象:它们接收请求作为参数并返回响应,仅此而已。视图直接映射到URL路由,因此两者之间没有魔术。

FBV更易于阅读和使用
对于CBV,并不总是很清楚那里有什么功能,正在调用哪些方法以及以什么顺序。有时,要了解CBV的逻辑流程,您必须紧密遵循继承层次结构,以了解调用什么以及何时调用。

与CBV不同,函数是显式的:您可以通过查看函数的主体来了解其行为。没有隐藏的功能或魔力。很明显,正在传递什么参数或正在调用什么函数。与CBV相比,遵循功能的逻辑流程要容易得多。结果,它们更容易理解和调试。

使用FBV是更好的学习体验
CBV是一种更高级,更复杂的工具。同时,如果您是初学者,他们可以解决与您无关的问题。通用视图是CBV的一种流行风格,它使您可以快速编写常见用例的原型,而无需编写大量代码。从一开始就可能会使用这些视图,但是您将学不到很多东西。如果它们破裂,您将不知道该怎么办,因为您不知道它们是如何工作的。

这就是为什么FBV在学习方面是更好的选择的原因:由于无法使用通用视图,因此别无选择,只能从头开始实现功能。从头开始构建事物是一种很棒的学习体验,因为它可以帮助您真正了解事物的工作原理。最后,一旦您习惯了构建通用功能,就会更容易学习和理解CBV或通用视图。

接下来我该怎么办?
通用CBV实现了通常称为CRUD(创建,读取,更新,删除)的功能。 CRUD操作在对象上执行,该对象是Django模型的实例。那么,为什么不继续使用FBV从头开始构建类似的功能呢?例如,从执行读取操作的视图开始,该视图涉及获取一个对象并使用该对象渲染模板。您稍后可以继续进行其余的CRUD操作。

原文:https://djangoadventures.com/3-reasons-why-you-should-learn-function-based-views-first/