【问题标题】:Make Bottle return the correct response code, not a 200让 Bottle 返回正确的响应代码,而不是 200
【发布时间】:2016-11-13 20:06:00
【问题描述】:

我正在尝试使用自定义记录器记录来自 Bottle REST 服务的输出。问题在于,Bottle 错误页面默认的 HTTP 响应代码为 200,因此记录器始终记录 200 OK,因为它查看的是 response.status

我尝试制作设置response.status 的自定义错误处理程序,但这不起作用。

【问题讨论】:

  • 我不明白这个问题。如果您提供一个最小的、可工作的代码 sn-p 来演示它,我很乐意看一看。

标签: http-headers bottle


【解决方案1】:

abort() 函数是生成 HTTP 错误页面的快捷方式。

from bottle import route, abort
@route('/restricted')
def restricted():
    abort(401, "Sorry, access denied.")

除此之外,HTTP 状态代码(和其他相关信息)存储在一个名为 response 的对象中,直到它们被传输到浏览器。您可以直接操作Response.status 属性或使用预定义的辅助方法来执行此操作。

HTTP 状态码默认为 200 OK。在大多数情况下,您不需要手动设置 Response.status 属性,而是使用 abort() 帮助程序或返回带有适当状态代码的 HTTPResponse 实例。

请参阅教程文档中的 HTTP ERRORS AND REDIRECTS

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 2020-02-15
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2022-10-20
    • 2019-07-16
    • 2023-03-21
    • 2021-08-23
    相关资源
    最近更新 更多