Web框架编程心态

时间:2020-03-05 18:41:58  来源:igfitidea点击:

我刚刚开始使用Django / Python,并尝试转换为Django要求的(坚持)MTV编程模式。到目前为止,确定哪些函数应该是模型的方法与简单地将其视为视图中的函数一直是令人困惑的。是否有人知道一本书,网站,博客,幻灯片,或者用更笼统,抽象的术语讨论Web Framework编程的东西?我以为只有一本有关面向对象程序设计的书可以做到,但是我觉得那太过高了,我一直在寻找特定于Web框架的东西。

解决方案

回答

如果我们不是绝对想使用Django,并且不介意尝试其他事情,那么我们可能想尝试一下WSGI,这使我们可以使用第三方引擎以自己的方式对应用程序进行模板化,而不是必须完全遵循Django的规则。这也使我们可以较低级别地处理请求,因此我们可以更好地了解Django的功能。

回答

这里有一些链接可能会对概述有所帮助。

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

  • MVC在外行的术语
  • MVC:最令人头疼的难题
  • 如何使用模型-视图-控制器

回答

在Django中,我的基本规则是:如果可以想象,除了视图本身之外,还需要其他功能,则它不属于视图功能。

我还建议我们在Django Pluggables上下载大量应用程序,并查看它们的工作方式。

回答

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

回答

一旦找到了不错的指南,就需要记住以下几点:Django的术语有点特殊。它对模型,模板和视图使用" MTV"(并且可以在此过程中的某处提到URL调度程序),而对于模型,视图和控制器,更标准的术语集是" MVC"。

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

但是剩下的两个术语可能会造成混淆; Django在其中谈论视图,而"世界其他地方"则在谈论控制器。基本思想是完成表示逻辑的地方。计算计算,数组排序,数据检索等。我想说Django的URL分配器也是常规Controller概念的一部分。

Django的模板可与我们在此处演示的其他地方的"视图"媲美。在Django强迫我们执行少量逻辑命令的地方,其他框架通常只是建议我们除了呈现HTML之外,不要执行任何其他操作,并使用某些呈现逻辑元素(例如循环,分支等),但不要阻止我们执行其他操作东西。

因此,回顾一下:

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

哦,顺便说一句:有关Django的特定指南,请考虑阅读Django书

回答

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