Python 金字塔-螺纹局部不';t在响应内部工作';s app_iter
使用以下示例代码:Python 金字塔-螺纹局部不';t在响应内部工作';s app_iter,python,pyramid,thread-local,webob,Python,Pyramid,Thread Local,Webob,使用以下示例代码: from webob import Response from paste.httpserver import serve def test_iter(): from pyramid import threadlocal yield 'current request: %s' % threadlocal.get_current_request() def hello_world(request): return Response(app_ite
from webob import Response
from paste.httpserver import serve
def test_iter():
from pyramid import threadlocal
yield 'current request: %s' % threadlocal.get_current_request()
def hello_world(request):
return Response(app_iter=test_iter())
if __name__ == '__main__':
from pyramid.config import Configurator
config = Configurator()
config.add_view(hello_world)
app = config.make_wsgi_app()
serve(app, host='0.0.0.0')
我收到当前请求:无。所以,threadlocal
在app\u iter
中不起作用?我有实际的代码,需要访问视图之外的几层threadlocal
,传递请求变量会很麻烦。可能有错误
return Response(app_iter=test_iter())
或
根据本文,线程本地堆栈应该在使用app_iter之后才会弹出(参见步骤16和18),尽管我在尝试运行示例时看到了与您相同的行为。由于文档和行为冲突其中一个是错误的,我建议金字塔的人使用。app\u iter
需要一个迭代器。只传入test\u iter
将导致错误TypeError:“function”对象不可iterable
。啊,这实际上是预期的行为。
return Response(app_iter=test_iter)