小编S18*_*182的帖子

使用Flask-SQLAlchemy和Blueprints循环导入db引用

我正在使用Flask-SQLAlchemy和Blueprints,我无法使用循环导入.我知道我可以在函数内部编写导入并使其工作但它听起来很讨厌,我想与社区确认是否有更好的方法来做到这一点.

问题是我有一个模块(blueprints.py),我在其中声明数据库并导入蓝图,但这些蓝图需要同时导入数据库声明.

这是代码(重要部分的摘录):

application.apps.people.views.py

from application.blueprints import db

people = Blueprint('people', __name__,
                 template_folder='templates',
                 static_folder='static')

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)

@people.route('/all')
def all():
    users = User.query.all()
Run Code Online (Sandbox Code Playgroud)

application.blueprints.py

from application.apps.people.views import people

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
app.register_blueprint(people, url_prefix='/people')
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档和我在这个主题上发现的问题,但我仍然找不到我要找的答案.我已经找到了这一章(https://pythonhosted.org/Flask-SQLAlchemy/contexts.html),它建议将初始化代码放在方法中,但循环导入仍然存在.

编辑 我使用模式Application Factory修复了问题

flask flask-sqlalchemy

33
推荐指数
3
解决办法
1万
查看次数

标签 统计

flask ×1

flask-sqlalchemy ×1