也许这是一个愚蠢的问题,但我无法弄清楚如何在 webpy 中获取 http 状态代码。
在文档中,我可以看到主要状态代码的类型列表,但是是否有一个通用函数来设置状态代码?
我正在尝试实现一个unAPI
服务器,它需要回复一个300 Multiple Choices
只有一个标识符的请求。更多信息在这里
谢谢!
编辑:我刚刚发现我可以通过web.ctx
做来设置它
web.ctx.status = '300 Multiple Choices'
这是最好的解决方案吗?
也许这是一个愚蠢的问题,但我无法弄清楚如何在 webpy 中获取 http 状态代码。
在文档中,我可以看到主要状态代码的类型列表,但是是否有一个通用函数来设置状态代码?
我正在尝试实现一个unAPI
服务器,它需要回复一个300 Multiple Choices
只有一个标识符的请求。更多信息在这里
谢谢!
编辑:我刚刚发现我可以通过web.ctx
做来设置它
web.ctx.status = '300 Multiple Choices'
这是最好的解决方案吗?
web.py 对 301 和其他重定向类型执行此操作的方式是通过子类化web.HTTPError
(依次设置web.ctx.status
)。例如:
class MultipleChoices(web.HTTPError):
def __init__(self, choices):
status = '300 Multiple Choices'
headers = {'Content-Type': 'text/html'}
data = '<h1>Multiple Choices</h1>\n<ul>\n'
data += ''.join('<li><a href="{0}">{0}</a></li>\n'.format(c)
for c in choices)
data += '</ul>'
web.HTTPError.__init__(self, status, headers, data)
然后在您的处理程序中输出此状态代码raise MultipleChoices
:
class MyHandler:
def GET(self):
raise MultipleChoices(['http://example.com/', 'http://www.google.com/'])
当然,它需要针对您的特定 unAPI 应用程序进行调整。