2008-08-22 76 views
2

我刚刚开始玩Django/Python,并试图转入Django要求的编程的MTV模式(坚持)。迄今为止,决定哪些功能应该是模型的方法而不是简单地作为视图中的功能。有没有人知道一本书,网站,博客,幻灯片,无论是以更一般的抽象术语讨论Web框架编程?我想像一本关于面向对象编程的书会做到这一点,但我觉得这样做会过度 - 我正在寻找一些特定于Web框架的东西。Web框架编程心态

回答

0

如果你没有绝对设置在深入Django和不介意尝试别的东西作为开始,你可能想给WSGI一个镜头,它允许您模板应用程序使用third party engine自己的路,而不必完全遵循Django的规则。这也让你可以在更低级别的处理请求中查看,这样你可以更好地理解Django在底层做什么。

1

我的Django的基本规则是:如果你可以想见,需要从比视图本身之外的其他地方的功能,它不属于在查看功能。

我还建议下载一些Django Pluggables上的应用程序,看看他们是如何做到的。

0

查看功能应该只包含显示助手或显示逻辑。视图函数不应该访问模型本身,而应该使用模型数据的参数。从模型中分离模型非常重要。所以如果函数处理访问数据库或数据库对象,它就属于模型。如果该函数处理格式显示,则它属于视图。

1

一旦你找到一些很好的指导,这里有一些事情要记住:Django是有点特殊的术语。它在模型,模板和视图中使用“MTV”(并且可以在此处提及URL Dispatcher),而模型,视图和控制器的更多标准术语是“MVC”。

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

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

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

因此,回顾一下:

  • 型号:数据对象
  • 控制器(Django的视图):数据处理
  • 视图(模板在Django):介绍

哦,btw:对于一个Django特定的指南,考虑readin摹The Django Book

1

我没有真正使用Django的愤怒之前,但在Rails和CakePHP的(通过扩展,任何MVC的Web框架)的Fat Model, Skinny Controller方法来组织你的方法一直是大开眼界我。