最佳答案
我想把我的 Flask 应用程序设计成这样:
./site.py
./apps/members/__init__.py
./apps/members/models.py
apps.members
是一个烧瓶蓝图。
现在,为了创建模型类,我需要掌握应用程序,比如:
# apps.members.models
from flask import current_app
from flaskext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(current_app)
class Member(db.Model):
# fields here
pass
但是如果我尝试将这个模型导入到我的 Blueprint 应用程序中,我就会得到可怕的 RuntimeError: working outside of request context
。我如何在这里正确地掌握我的应用程序?相对进口可能有用,但它们相当丑陋,而且有其自身的背景问题,例如:
from ...site import app
# ValueError: Attempted relative import beyond toplevel package