2010-03-01 68 views
0

使用pylons 0.9.7,我試圖創建一個按需連接到數據庫的函數。我希望它可以在所有模型類中的所有函數中訪問。使用Python + Pylons創建一個全局函數,可以從所有類訪問

model/__init__.py,我有:

#Establish an on-demand connection to the central database 
def connectCentral(): 
    engine = engine_from_config(config, 'sqlalchemy.central.') 
    central.engine = engine 
    central.Session.configure(bind=engine) 

此功能是訪問無處不在。然而,當我嘗試從model/class.py指定一個類中運行它,它返回:

NameError: global name 'connectCentral' is not defined 

我必須做的任何一種特殊的進口?有一個更好的方法嗎?

謝謝。

回答

1

你做完了import init?或者寧可from init import connectCentral

如果確實如此,應該定義該名稱。如果不是的話,你可以嘗試在方法體內編寫global connectCentral,但我相信這只是使用全局變量。

你確定,這個模塊應該有名字init.py而不是__init__.py?你可以發佈更多的代碼,你試圖使用你的功能?

編輯

所以你有__init__.py,罰款。你在做進口from model import connectCentral嗎?難道你沒有任何circral進口(如從__init__.pyclass.py進口和從class.py__init__.py進口)?

+0

嗨 - 我想在一個名爲model/user.py的類中使用我的函數。我相信__init__.py是正確的,因爲這是掛架創建默認模板的方式。它在我導入__init__時起作用。 – ensnare 2010-03-01 17:01:39

+0

你能發佈一些來自user.py和init.py的代碼嗎? – gruszczy 2010-03-01 17:02:40

2
from model import connectCentral 
相關問題