Web框架编程思维

时间:2008-08-22 12:34:33

标签: frameworks object

我刚刚开始使用Django / Python并试图转向Django要求的MTV编程模式(坚持)。到目前为止,确定模型的方法与简单的视图中的函数应该是什么函数一直是令人困惑的。有谁知道一本书,网站,博客,幻灯片,以及更一般,抽象的术语讨论Web框架编程的内容?我想象一本关于面向对象编程的书会做到这一点,但我觉得这样就太过分了 - 我正在寻找一些特定于Web框架的东西。

6 个答案:

答案 0 :(得分:1)

我在Django中的基本规则是:如果你可以想象除了视图本身以外的某个地方需要它的功能,它就不属于视图函数。

我还建议您在Django Pluggables上下载一些过多的应用,看看他们是如何做的。

答案 1 :(得分:1)

一旦你找到一些好的指南,这里有一些值得记住的东西:Django的术语有点特别。它使用模型,模板和视图的“MTV”(并且在整个过程中也可以提到URL Dispatcher),而更为标准的术语集是模型,视图和控制器的“MVC”。

模型在两个含义中都是相同的 - 如果框架实现了对象/关系映射(Django所做的那样),那么数据实体的模型通常链接到数据库表。

但剩下的两个条款可能令人困惑;在Django谈论Views时,“世界其他地方”谈论控制器。基本思想是这是表示逻辑完成的地方。计算计算,排序数组,检索数据等。我会说Django的URL调度程序也是传统Controller概念的一部分。

Django的模板与其他地方的视图相当 - 在这里你有你的演示文稿,没有别的。在Django强迫你使用一小组逻辑命令的地方,其他框架通常只是建议你不要做任何事情而不是呈现HTML,有一些表示逻辑元素(如循环,分支等),但不要阻止你做其他东西。

所以,回顾一下:

  • 型号:数据对象
  • 控制器(在Django中查看):数据处理
  • 查看(Django中的模板):演示文稿

哦,顺便说一下:对于特定于Django的指南,请考虑阅读The Django Book

答案 2 :(得分:1)

我之前并没有真正使用过Django,但是在Rails和CakePHP(以及扩展,任何MVC网络框架)中Fat Model, Skinny Controller组织你的方法的方法对我来说真的让人大开眼界

答案 3 :(得分:0)

如果你并不是绝对想进入Django并且不介意尝试别的东西作为开始,你可能想给WSGI一个镜头,这允许你以自己的方式模拟你的应用程序一个third party engine,而不是完全按照Django的规则去做。这也允许您查看较低级别的处理请求,以便您更好地了解Django正在做什么。

答案 4 :(得分:0)

以下是一些可能有用的链接。

根据我自己的经验,当我第一次开始使用基于MVC的Web框架时,我遇到的最大问题是模型。从我的手指中掏出SQL并让我使用对象感觉很奇怪。一旦我开始将我的数据视为对象而不是SELECT语句,它就变得更容易了。

答案 5 :(得分:0)

View函数应该只包含显示助手或显示逻辑。视图函数永远不应访问模型本身,但应该获取模型数据的参数。将模型与视图分开很重要。因此,如果函数处理访问数据库或数据库对象,则它属于模型。如果函数处理格式显示,则它属于视图。