在Flask响应中设置HTTP状态文本

2024-10-01 07:45:34 发布

您现在位置:Python中文网/ 问答频道 /正文

如何为Flask中的响应设置HTTP状态文本?在

我知道我可以返回一个带有状态码的字符串

@app.route('/knockknock')
def knockknock():
    return "sleeping, try later", 500

但是这设置了主体,我想将HTTP状态文本从“INTERNAL SERVER ERROR”更改为“sleeping,try later”。在

看来这在烧瓶/Werkzeug中是不可能的。哪儿也没提到。但也许我遗漏了什么?在


Tags: 字符串文本apphttpflaskreturn状态def
3条回答

我不是这方面的专家,但恐怕这只能通过恶作剧来实现。在

Flask返回werkzeug Response对象,状态码原因似乎是http.py中的hardcoded。在

同样,一些monkeypatching可能已经足够为您的应用程序改变这一点了。在

以下将在烧瓶中工作。Flask在返回响应时可以使用状态代码或描述。显然,描述也可以包含代码(从客户端来看,它是相同的)。但是请注意,这不会从烧瓶侧生成默认的错误描述。在

from flask import Flask
app = Flask(__name__)

@app.route('/knockknock')
def knockknock():
    return "", "500 sleeping, try later"

这是curl命令的输出

^{pr2}$

也许这个文档会有帮助,你可以定制你自己的错误页面。在

http://flask.pocoo.org/docs/0.12/patterns/errorpages/

通过查看源代码,在应用程序副本可以找到

if status is not None:
        if isinstance(status, string_types):
            rv.status = status
        else:
            rv.status_code = status

所以使用

^{pr2}$

有效。在

对不起,误会了。在

相关问题 更多 >