首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Webpy:如何将http状态码设置为300

Webpy:如何将http状态码设置为300
EN

Stack Overflow用户
提问于 2011-01-26 03:03:18
回答 1查看 6K关注 0票数 16

也许这是一个愚蠢的问题,但我不知道如何在webpy中输入http状态码。

在文档中我可以看到主状态代码的类型列表,但是有没有一个通用的函数来设置状态代码?

我正在尝试实现一个unAPI服务器,它需要用一个300 Multiple Choices来回复一个只有一个标识符的请求。更多信息here

谢谢!

编辑:我刚刚发现我可以通过web.ctx来设置它

web.ctx.status = '300 Multiple Choices'

这是最好的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-26 04:31:55

web.py对301和其他重定向类型执行此操作的方式是通过子类化web.HTTPError (这会设置web.ctx.status)。例如:

代码语言:javascript
复制
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命令:

代码语言:javascript
复制
class MyHandler:
    def GET(self):
        raise MultipleChoices(['http://example.com/', 'http://www.google.com/'])

当然,它需要针对特定的unAPI应用程序进行调整。

另请参见the source for web.HTTPError in webapi.py

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4797704

复制
相关文章

相似问题

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