首页 > 解决方案 > 烧瓶中的 current_app 应用程序上下文。获取烧瓶的工作实例

问题描述

我正在尝试设置简单的烧瓶应用程序来感知app_context()功能。

这是我的代码:

# config.py
UPDATE_PERIOD = 100.0

# init.py
from flask import Flask
import config

app = Flask(__name__)
app.config.from_object(config)
app.config['DEBUG'] = True

@app.route('/')
def hello_world():
    return 'Hello, World!'


if __name__ == "__main__":
    app.run()

# ex.py
from flask import current_app 

from flask import Flask


app = Flask(__name__)

with app.app_context() as app:
    print(current_app.config['DEBUG'])
    print(current_app.config['UPDATE_PERIOD'])

现在,我正在运行我的 init.py:

python3 init.py

* Serving Flask app "init" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 666-659-182

没关系,应该如何。app.config['DEBUG'] = True在这里,我期望app.config['UPDATE_PERIOD'] = 100.0

我正在尝试在ex.py.

问题是:当我执行时:python3 ex.py我期望这个:

True
100.0

但最终我得到了这个:

False
Traceback (most recent call last):
  File "ex.py", line 10, in <module>
    print(current_app.config['UPDATE_PERIOD'])
KeyError: 'UPDATE_PERIOD'

所以我无法了解 app_context() 功能是如何工作的,而我认为我正在做与docs中所写相同的事情。

有一个选项可以导入ex.py

from init import app 

但我想在没有复杂导入的情况下获得工作实例,因为我的应用程序很大。

谁能帮我解决这个问题..?

先感谢您!

标签: python-3.xflaskapplicationcontext

解决方案


推荐阅读