仅在必要时连接到数据库

时间:2010-02-05 21:41:03

标签: python sqlalchemy pylons

我正在使用Pylons + Python,并试图了解如何在必要时如何连接到我们的中央数据库服务器。

我创建了一个名为Central()的类,每当需要连接到中央数据库服务器时,我想要实例化它,例如:

class Central():

def __init__(self):

    engine = engine_from_config(config, 'sqlalchemy.central.')     
    central_db = create_engine(engine)

    print central_db

但是,当我打电话时,这不起作用:

c = DBConnect.Central()

这样做的正确代码是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

由于我无法分辨代码的布局,我只能假设您已在全局上下文中的某处定义了enginecentral_db。那是对的吗?如果是这样,你可以尝试这样的事情:

def __init__(self):
    global engine
    global central_db
    engine = engine_from_config(config, 'sqlalchemy.central.')     
    central_db = create_engine(engine)

它会引用全局enginecentral_db个对象而不是本地对象(如 Wim 所描述的那样)

答案 1 :(得分:0)

你能定义“不起作用”吗?

如果您想稍后使用central_dbengine,则需要将它们存储在对象中(使用self.central_dbself.engine,稍后您可以将其作为{ {1}}和c.central_db)。现在它们只是局部变量,一旦你的构造函数完成就会被破坏。

相关问题