Flask 解决 —— RuntimeError: Working outside of application context.

    最近接手Flask项目,再引入多线程操作时出现 ‘RuntimeError: Working outside of application context.’逐步调试发现是我使用了公共变量导致,flask 框架引入了应用上下文管理,详见:http://flask.pocoo.org/docs/0.12/appcontext/,但又不能简单使用下列方法解决,因为无法获取到公共变量。


from flask import Flask, current_app

app = Flask(__name__)
with app.app_context():
    # within this block, current_app points to app.
    print current_app.name
     于是我把详细解决方法写在下面:

config.py

class Config:
    IPMI_INFO = [...] # 这个是多线程要调用的公共变量,也是它导致出现标题错误
config = {
   'default': Config
}...

      app.__init__.py

...代码省略
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)
...

     执行文件 **.py

from app import create_app#新添解决代码
app = create_app('default')#新添解决代码
...
with app.app_context():#新添代码 解决
    ...原代码内容

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值