def create_app():
app = Flask(__name__)
...
# Import models to register them with SQLAlchemy metadata
from app.models.dataset import Dataset, DataPreprocessingConfig
from app.models.model import MLModel, TrainingTask, ModelDeployment
...
with app.app_context():
db.create_all()
虽然没问题但是啰嗦的要死以后还可能漏导入。我让他利用__init__.py一次性导入,它就把那堆具体的import换成import app.models,然后就出错了AttributeError: module 'app' has no attribute 'app_context'。我也傻了一开始没想明白为什么。哦原来是子模块导入当然会赋值父模块的名字到变量,覆盖掉了flask实例的app。