使用Python + Pylons创建可从所有类访问的全局函数

时间:2010-03-01 16:49:07

标签: python pylons

使用pylons 0.9.7,我正在尝试创建一个按需连接到数据库的函数。我希望可以从所有模型类中的所有函数访问它。

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

我必须做任何特殊的进口吗?有更好的方法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

from model import connectCentral

答案 1 :(得分:1)

你做过import init吗?或者更确切地说是from init import connectCentral

如果你这样做,那么应该定义这样的名字。如果没有,你可以尝试在方法体中编写global connectCentral,但我相信它仅用于使用全局变量。

您确定,此模块应该具有名称 init.py 而不是 __ init __。py 吗?您是否可以发布更多代码,尝试使用您的功能?

修改

所以你有__init__.py,很好。你在做导入from model import connectCentral吗?您是否有任何进口货物(例如从__init__.py中的class.py导入并从class.py中的__init__.py导入)?