2010-01-12 48 views
1

我已經安裝了Pylons v0.9.7,並使用genshi創建了一個項目。 我試圖編寫一個簡單的測試用例,但它不起作用。主塔「全球名稱'c'未定義」

代碼:member.py

coding: utf-8 
import logging import foo.model 

from foo.lib.base import * 

log = logging.getLogger(__name__) 

class MemberController(BaseController): 

    def index(self): 
     c.title="title" 
     c.mes="message" 
     return render('test.html') 

代碼:test.html的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns:py="http://genshi.edgewall.org/" 
     lang="ja"> 
    <head> 
     <title>${c.title}</title> 
    </head> 
<body> 
    <p>${c.mes}</p> 
</body> 
</html> 

和錯誤信息(對數)

Error - <type 'exceptions.NameError'>: global name 'c' is not defined 

請幫我找出錯誤。

回答

3
c.title="title" 

要求名稱c定義(全局或本地)。你永遠不會定義什麼名爲c

因此,在給c.title分配任何東西之前,先定義一個合適的名稱c(其中屬性title可以設置!)。

下一頁提示:from pylons import tmpl_context as c - 你沒有from ... import ... as,你有沒有現在 - )

+1

捐贈是光作爲提示? 我有你的書(python CookBook)! 我很榮幸。 此後,它再次嘗試。 – Schaft 2010-01-12 05:22:54

+0

啊!有效!謝謝Alex! 我明白「C was tmpl_context」。 我衷心地表示感謝。 – Schaft 2010-01-12 06:24:46