首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从greenlet中访问flask应用程序上下文

从greenlet中访问flask应用程序上下文
EN

Stack Overflow用户
提问于 2015-03-11 09:56:00
回答 2查看 2.4K关注 0票数 2

我有一个flask-script命令,可以生成一个很长的greenlet序列。问题是,这些greenlet无法访问我的应用程序上下文。我总是得到一个"> failed with RuntimeError“(访问app.logger,根据示例)。有什么建议吗?

在我的一次尝试中:派生(方法,应用程序,arg1,arg2)

代码语言:javascript
复制
def spawn(app, arg1, arg2):
    with app.app_context():
        app.logger.debug('bla bla') # doesn't work
        ... do stuff
EN

回答 2

Stack Overflow用户

发布于 2015-03-11 21:37:51

编辑:下面提供了访问request对象的权限,但不是current_app对象的权限,这可能不是您要搜索的内容。

您可能正在寻找此处记录的flask.copy_current_request_context(f)http://flask.pocoo.org/docs/0.10/api/#flask.copy_current_request_context

示例:

代码语言:javascript
复制
import gevent
from flask import copy_current_request_context

@app.route('/')
def index():
    @copy_current_request_context
    def do_some_work():
        # do some work here, it can access flask.request like you
        # would otherwise in the view function.
        ...
    gevent.spawn(do_some_work)
    return 'Regular response'
票数 1
EN

Stack Overflow用户

发布于 2015-05-09 05:39:36

您可以从请求中传递相关信息的副本,例如

代码语言:javascript
复制
import gevent

@app.route('/')
def index():
    def do_some_work(data):
        # do some work here with data
        ...
    data = request.get_json()
    gevent.spawn(do_some_work, data)
    return 'Regular response'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28977290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档