在应用程序上下文之外工作-Flask

Koten:
def get_db(self,dbfile):
    if hasattr(g, 'sqlite_db'): self.close_db(g.sqlite_db)
    try:
        g.sqlite_db = self.connect_db('{}/{}'.format(app.root_path, dbfile))
    except sqlite3.OperationalError as e:
        raise e

    return g.sqlite_db

嗨,这段代码位于DB类内部,我得到的错误是

RuntimeError:在应用程序上下文之外工作

该行发生错误

g.sqlite_db = self.connect_db('{}/{}'.format(app.root_path, dbfile))

我认为问题在于g,它像这样导入 from flask import g

如何解决此错误?谢谢。

胡安·帕勃罗·桑托斯(Juan Pablo Santos):

从Flask源代码中flask/globals.py

_app_ctx_err_msg = '''\
Working outside of application context.

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

通过该文档,您可以看到您需要flask.current_app指向您的应用程序,而当前并不需要。

您可能在Flask初始化之前调用了DB函数。我的猜测是您的app对象尚未使用Flask构造函数创建

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flask-RuntimeError:在应用程序上下文之外工作

RuntimeError:在 Python 中使用 Celery 和 Flask 在应用程序上下文之外工作

异步使用Flask-Mail会导致“ RuntimeError:在应用程序上下文之外工作”

使用Python Flask应用程序“ RuntimeError:在应用程序上下文之外工作”(使用调度程序发送gmail)

RQ 作业的 Flask 上下文(运行时错误:在应用程序之外工作)

从Flask应用程序中的外部应用程序上下文访问应用程序对象

尝试将所有表放入Flask中,RuntimeError:找不到应用程序。在视图函数内部工作或推送应用程序上下文

在Flask的应用程序上下文中保持py2neo连接

在Flask框架中将应用程序上下文传递给celery

RuntimeError:在应用程序上下文之外工作

Flask,Python和Socket.io:多线程应用程序给了我“ RuntimeError:在请求上下文之外工作”

将 python flask 应用程序上下文传递给 rq 作业的正确方法

Flask.url_for()错误:尝试在未推送应用程序上下文的情况下生成URL

Python + Flask 在请求上下文之外工作

Flask Babel RuntimeError:在请求上下文之外工作

配置模块的“ RuntimeError:在应用程序上下文之外工作”

烧瓶WTForm:“在应用程序上下文之外工作”

使用应用程序工厂模式时,如何从嵌入式Dash应用程序中访问Flask应用程序的上下文?

在应用程序上下文之外工作;FlaskClient对象没有属性“ app_context”

RuntimeError:在应用程序上下文之外工作。与app.app_context()无法解决问题

使用Python远程API在Google App Engine中“在应用程序上下文之外工作”

使用py.test进行单元测试时,“ RuntimeError:在应用程序上下文之外工作”

单元测试将生成“ RuntimeError:在应用程序上下文之外工作”。与模拟4.0.0

sqlalchemy的Flask应用上下文

Flask启动新线程-RuntimeError:在请求上下文之外工作

RuntimeError:尝试从另一个Python脚本向Flask应用发送POST请求时在请求上下文之外工作

使用Flask将机器学习模型部署为REST API。错误:RuntimeError:在请求上下文之外工作

获取应用程序上下文错误

更改Tomcat Web应用程序上下文