2

モデルとは別に、コマンドを含むファイルがあります。modelsモデルは、すべてのモデルをstarterファイルにインポートした後にのみ実行されました。

db = SQLAlchemy(app)                      

from models import *                     

try:                                      
    argv = sys.argv[1]                    
    argv == '--run' and app.run()         
    argv == '--create' and db.create_all()

しかし、それは私にとってかなりあいまいです。Flask-Sqlalchemy のソース コードについて説明します。私が見た:

def get_tables_for_bind(self, bind=None):
    """Returns a list of all tables relevant for a bind."""
    result = []
    for table in self.Model.metadata.tables.itervalues():
        if table.info.get('bind_key') == bind:
            result.append(table)
    return result

そして、私は次のことを理解していself.Modelます:

def make_declarative_base(self):
    """Creates the declarative base."""
    base = declarative_base(cls=Model, name='Model',
                            mapper=signalling_mapper,
                            metaclass=_BoundDeclarativeMeta)
    base.query = _QueryProperty(self)
    return base

実行するモデルを指定するより明示的な方法はありますか? また、self.Model(インポート後に) どのテーブルを実行する必要があるかをどのように知るのでしょうか?

4

0 に答える 0