2013-01-08 23 views

回答

1

視圖是基於環境和要求提供輸出調用適配器。

模板是基於模板渲染一段文本的可調用的。它們通常用於視圖。

注意,視圖可以返回文本不使用模板:

from zope.publisher.browser import BrowserView 

class MyView(BrowserView): 
    def __call__(self): 
     return "Hello world, I am located at {0}".format(self.context.absolute_url()) 

視圖也可以通過其他的Zope代碼中使用,而自身不被髮表。 Zope代碼在內部使用了很多視圖。

+0

所以'view'處理由一個(或多個)'模板'生成的HTML片段中定義的動作。那些動作改變了底層模型(比如'OFS.Folder'),對嗎? –

+0

他們*可以*做到這一點,但不一定。但是,是的,上下文可以是「OFS.Folder」。 –

+0

那麼爲什麼我們需要一個新層('view')?我不明白「視圖」的目的。在我的困惑中放縱一下,但我還沒有在其他網頁框架中看到類似的模式,這些模板通常以模板→HTML→動作→模型的形式出現。 –