在主类之外访问烧瓶上下文

时间:2019-07-16 10:57:31

标签: python flask runtime-error

我是python的新手,因此我认为解决方案可能是快速的。我已经花了几个小时,但无法正常工作。

我需要在主要班级以外访问应用程序。 封装结构如下:

app/
   app.py
   another_class.py

在app.py中:

app = Flask(__name__)

在another_class.py中:

from flask import current_app as app

app.config['test_key']

我当然会收到错误

RuntimeError: Working outside of application context.

This typically means that you attempted to use functionality that needed
to interface with the current application object in some way. To solve
this, set up an application context with app.app_context().  See the
documentation for more information.

我尝试将其运行在

with app.app_context:

但是它似乎没有用。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您的问题就在这里。

  

我需要在主要班级以外访问应用程序

您正在尝试以错误的方式解决它。 current_app对于使用最初在外部使用的功能很有用。通常,用例是模拟路线,但离线。

您想要做的是拥有一个可以“管理”您的应用程序的文件,例如manage.py。然后,另一个文件app.py将包含您的应用程序的配置。

manage.py文件中,您将import app运行。然后,如果您需要访问app对象,则可以从另一个文件中import app。基本上,您要在app中实例化的app.py对象就像一个指针,并且导入该应用程序的其他文件也将受到您在另一个文件中对该对象{{1 }}。

您的树应该看起来像这样。

app