Flask-SQLAlchemy导入/上下文问题

8 浏览
0 Comments

Flask-SQLAlchemy导入/上下文问题

我想要像这样组织我的Flask应用程序:

./site.py
./apps/members/__init__.py
./apps/members/models.py

apps.members 是一个Flask蓝图。

现在,为了创建模型类,我需要获取应用程序的引用,例如:

# apps.members.models
from flask import current_app
from flaskext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(current_app)
class Member(db.Model):
    # fields here
    pass

但是,如果我尝试将该模型导入到我的蓝图应用程序中,我会遇到可怕的RuntimeError: working outside of request context错误。我该如何正确地获取我的应用程序?相对导入可能有效,但它们相当丑陋并且有自己的上下文问题,例如:

from ...site import app
# ValueError: Attempted relative import beyond toplevel package

0