因为_request_ctx_stack和_app_ctx_stack这两个栈中没有栈顶数据导致的,可以通过手动推入栈的方式将数据推入到栈中。

    Working outside of application context
    这种问题的出现可能是在单元测试或者离线应用中,在没有请求的时候,需要获取到app的配置信息。

    解决办法:
    通过app.app_context()方法获取到app的核心对象而不是AppContext,然后将其推入到app栈中。
    ctx = app.app_context()
    ctx.push()

    可以使用with语句将其推入到栈中。
    with app.app_context():
    a = current_app
    d = curren_app.config[‘DEBUG’]