我是炼金术新手,所以如果这是一个基本问题,请原谅我。我有表类反映从现有的数据库,我想将它们存储在一个单独的文件。现在我的类在我的主应用程序的顶部:
engine = create_engine('mysql://'+user+':'+passwd+'@'+database, echo = False)
meta_data = MetaData(bind = engine, reflect = True)
Base = declarative_base()
class Table_1(Base):
__table__ = Table('node_lmp', meta_data, autoload=True)
def __init__(self, name):
self.name = name
class Table2(Base):
__table__ = Table('type_lmp', meta_data, autoload=True)
def __init__(self, data, name):
self.data = data
self.name = name
Rest of application...
我不确定如何将这些类导出到单独的模块,因为它们依赖于已建立连接的元数据。
我试过用DeferredReflection做实验,但没有效果。这个我有点迷路了
例如,我们有一个目录结构如下:
MainDir/
__init__.py
main.py
modelsDir/
__init__.py
meta.py
modelA.py
如果你想用几个文件构建python程序,你需要__ init__.py -file,让它为空。它打包了其他python文件,以便main.py可以使用它们,并且它们是可调用的。
在meta.py中,你可以像在主文件中一样使用引擎、meta_data和Base变量。在modelA.py中,您可以像这样调用这些元数据:
from MainDir.modelsDir.meta import {
engine,
meta_data,
Base
}
将这些表导入到主文件中就像上面那样。您可以通过同样的方式导入变量(引擎等)和类。