擅长:python、mysql、java
<pre><code>myapp
__init__.py
scripts
__init__.py
initialize_db.py
models
__init__.py
meta.py
foo.py
moo.py
</code></pre>
<p>现在,<code>meta.py</code>可以包含一个共享的<code>Base</code>,以及<code>DBSession</code>:</p>
^{pr2}$
<p>每个<code>foo.py</code>和{<cd5>}都可以从<code>meta.py</code>导入它们的共享基。在</p>
<pre><code>from .meta import Base
class Foo(Base):
pass
</code></pre>
<p>为了确保从<code>models</code>子包中提取所有表,并且为了方便起见,可以将它们导入<code>models/__init__.py</code>:</p>
<pre><code>from .meta import DBSession
from .foo import Foo
from .moo import Moo
</code></pre>
<p>如果不这样做,不同的表将不会附加到<code>Base</code>,因此在调用<code>create_all</code>时也不会创建这些表。在</p>
<p>然后,<code>initialize_db</code>脚本可以通过</p>
<pre><code>from myapp.models.meta import Base
Base.metadata.create_all(bind=engine)
</code></pre>
<p>您的观点可以导入模型以获取利润:</p>
<pre><code>from myapp.models import DBSession
from myapp.models import Foo
</code></pre>