python – 拦截WSGI start_response的适当方法是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 拦截WSGI start_response的适当方法是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1166字,纯文字阅读大概需要2分钟。
内容图文
![python – 拦截WSGI start_response的适当方法是什么?](/upload/InfoBanner/zyjiaocheng/783/e2d58e400f9e4921b02f661e2c133aef.jpg)
我有WSGI中间件需要通过调用start_response来捕获中间件内层返回的HTTP状态(例如200 OK).目前我正在做以下事情,但滥用列表似乎不是我的“正确”解决方案:
class TransactionalMiddlewareInterface(object): def __init__(self, application, **config): self.application = application self.config = config def __call__(self, environ, start_response): status = [] def local_start(stat_str, headers=[]): status.append(int(stat_str.split(' ')[0])) return start_response(stat_str, headers) try: result = self.application(environ, local_start) finally: status = status[0] if status else 0 if status > 199 and status
列表滥用的原因是我无法从完全包含的函数中为父命名空间分配新值.
解决方法:
您可以将状态指定为local_start函数本身的注入字段,而不是使用状态列表.我使用类似的东西,工作正常:
class TransactionalMiddlewareInterface(object):
def __init__(self, application, **config):
self.application = application
self.config = config
def __call__(self, environ, start_response):
def local_start(stat_str, headers=[]):
local_start.status = int(stat_str.split(' ')[0])
return start_response(stat_str, headers)
try:
result = self.application(environ, local_start)
finally:
if local_start.status and local_start.status > 199:
pass
内容总结
以上是互联网集市为您收集整理的python – 拦截WSGI start_response的适当方法是什么?全部内容,希望文章能够帮你解决python – 拦截WSGI start_response的适当方法是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。