我正在开发一个小型Django项目,我注意到有不同的方法来编写视图。
使用类创建的视图与使用函数创建的视图之间的区别是什么?
我什么时候应该使用哪一个?
谢谢!
答案 0 :(得分:3)
程序编程和面向对象编程之间存在着所有相同的差异。为极其简单的视图编写函数是有意义的,但不能超越它。没有什么比将400行代码填充到一个名为view的大函数中更糟糕了,这会成为阅读,重构或测试的噩梦。
除此之外,Django通用视图还利用了模板方法设计模式,并为通用用例提供了许多已经编写的通用代码,这些代码通常很容易扩展到个人需求。
答案 1 :(得分:0)
使用基于类的视图最重要的优势是inheritance
。
在处理大型项目时,很有可能遇到具有相似用途的多个视图,因此您可以继承基于类的视图来编写一个新的更具体的视图,该视图是针对所需方法定制的,或者您可以只是如果它已达到目的,则重用已定义的视图。
通常,当基于类的视图变得太复杂而无法实现时,会使用基于函数的视图。
如果你正在开发一个小项目,你可以使用基于函数的视图,因为你会发现基于类的视图写起来有点痛苦(至少我觉得这样)。