【问题标题】:FlaskInjector : Working outside of request contextFlaskInjector:在请求上下文之外工作
【发布时间】:2021-07-21 15:02:32
【问题描述】:

我正在构建一个烧瓶 webapp,它通过 http 请求与另一个应用程序通信。所以我正在尝试对 httpClient 对象使用依赖注入。
这是代码

class HttpClient(object):

    def __init__(self, host):
        self.host = host
        self.httpclient = 3partyModule.connect(url=host, 
                                                           verbose=False, 
                                                           max_greenlets=1)

def configure(binder):

    binder.bind(HttpClient, to=HttpClient, scope=singleton)
    
    
if __name__ == '__main__':

    app = Flask(__name__)
    FlaskInjector(app=app, modules=[configure])
    app.run()

当我运行应用程序时,我收到以下错误 -

发生异常:RuntimeError
在请求上下文之外工作。

这通常意味着您尝试使用所需的功能
一个活动的 HTTP 请求。请参阅有关测试的文档
有关如何避免此问题的信息。

我已尝试对此进行查找,但找不到任何有用的线索。 感谢是否有人可以在这里阐明这个问题。

提前谢谢你。

软件包版本:

烧瓶==2.0.1
烧瓶注射器==0.12.3
Python==3.8

【问题讨论】:

  • 你能在3partyModule中显示导入吗?
  • here 是我用来获取连接对象的第三方类“InferenceServerClient”。 3partyModule.connect(url, verbose, max_greenlets) == InferenceServerClient(url, verbose, max_greenlets)

标签: python-3.x flask dependency-injection flask-injector


【解决方案1】:

检查您的 Werkzeug 版本。注意到 Werkzeug==2.0.1 的这个问题。不得不回滚到 Werkzeug==0.15.2。

pip install --upgrade Werkzeug==0.15.2

【讨论】:

    【解决方案2】:

    我在Flask-Injector==0.12.3 遇到了这个问题,并通过升级到Flask-Injector==0.13.0 设法解决了这个问题

    【讨论】:

      猜你喜欢
      • 2020-01-27
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      相关资源
      最近更新 更多