我正在使用应用工厂模式构建一个 Flask 应用程序。如果我在我的 virtualenv 上安装 BPython 并使用 shell,它似乎无法获取应用程序上下文,因此当我尝试执行以下操作时:
>> Role.query.all()
我得到一个运行时错误:
application not registered on db instance and no application bound to current context
我必须使用创建应用程序上下文并这样做:
with app.app_context():
...
do stuff
但是,如果我使用 IPython,它可以正常工作。在文档中它说它已经为 BPython 和 IPython 做好了准备,所以我不知道为什么它没有创建应用程序上下文。