首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶-Sijax回调“在请求上下文之外工作”。

烧瓶-Sijax回调“在请求上下文之外工作”。
EN

Stack Overflow用户
提问于 2012-06-20 22:53:23
回答 2查看 3.9K关注 0票数 2

在回调函数中,我失去了访问flask.session、flask.g或url_for()等函数的能力。他们都会抛出一个错误,说我“在请求上下文之外工作”。

代码语言:javascript
复制
Debugging middleware caught exception in streamed response at a point where response headers were already sent.
Traceback (most recent call last):
  File "C:\Python27\site-packages\sijax\response\streaming.py", line 136, in _process_call_chain
    for string in generator:
  File "C:\Python27\site-packages\sijax\response\streaming.py", line 109, in _process_callback
    response = self._perform_handler_call(callback, args)
  File "C:\Python27\site-packages\sijax\response\base.py", line 258, in _perform_handler_call
    return callback(self, *args)
  File "C:\Dropbox\Code\Python 2.7\FlaskTesting\testpage.py", line 18, in myformhandler
    sql_session = flask.g.sql_session
  File "C:\Python27\lib\site-packages\werkzeug\local.py", line 336, in __getattr__
    return getattr(self._get_current_object(), name)
  File "C:\Python27\lib\site-packages\werkzeug\local.py", line 295, in _get_current_object
    return self.__local()
  File "C:\Python27\lib\site-packages\flask\globals.py", line 19, in _lookup_object
    raise RuntimeError('working outside of request context')
RuntimeError: working outside of request context
192.168.1.141 - - [20/Jun/2012 16:33:04] "POST /testpage HTTP/1.1" 200 -

我一直找不到解决这个问题的办法。任何帮助都将不胜感激。

v0.8

  • Flask-Sijax v0.3
  • Python v2.7
EN

回答 2

Stack Overflow用户

发布于 2018-11-05 05:24:34

您可以尝试使用stream_with_context。从http://flask.pocoo.org/docs/0.12/patterns/streaming/#streaming-with-context复制的代码示例

代码语言:javascript
复制
from flask import stream_with_context, request, Response

@app.route('/stream')
def streamed_response():
    def generate():
        yield 'Hello '
        yield request.args['name']
        yield '!'
    return Response(stream_with_context(generate()))
票数 1
EN

Stack Overflow用户

发布于 2015-11-24 14:23:05

如果您发布了您的代码,这将是有帮助的,但是尝试像这样包装您的代码:

代码语言:javascript
复制
with app.app_context():
    # do stuff...

或者这个:

代码语言:javascript
复制
with app.test_request_context():
    # do stuff...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11129341

复制
相关文章

相似问题

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