myapp __init__.py scripts __init__.py initialize_db.py models __init__.py meta.py foo.py moo.py
现在
meta.py可以包含共享
base以及
DBSession:
base = declarative_base()DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension))
每个
foo.py并
moo.py可以导入从他们共同的基础
meta.py。
from .meta import baseclass Foo(base): pass
为了确保从
models子包中拾取所有表,并且为了方便起见,可以将它们导入
models/__init__.py:
from .meta import DBSessionfrom .foo import Foofrom .moo import Moo
如果不执行此类操作,则不同的表将不会附加到
base,因此在
create_all调用时将不会创建。
initialize_db然后,您的脚本可以通过创建所有表
from myapp.models.meta import basebase.metadata.create_all(bind=engine)
您的视图可以导入模型以获利:
from myapp.models import DBSessionfrom myapp.models import Foo



