Python Flask有意的空响应


98

有没有一种方法可以返回make_response()具有特定属性的响应(来自对象或类似对象),以便它不会再次呈现页面并且也不会执行任何其他操作。我正在尝试在服务器上运行代码而不生成任何输出

一个简单的“不返回”会产生:

ValueError: View function did not return a response

这应该是可能的,因为以下内容仅下载文件而不渲染模板:

myString = "First line of a document"
response = make_response(myString)
response.headers["Content-Disposition"] = "attachment; filename=myFile.txt"
return response

Answers:


170

您回应的请求,HTTP服务器必须返回的东西。HTTP“空响应”响应为204 No Content

return ('', 204)

请注意,将文件返回到浏览器并不是一个空的响应,只是与HTML响应不同。


13
Ftr:您可能会httplib.NO_CONTENT避免使用幻数。
dtk

11
请注意,Python 2中的Python 2等效httplib.NO_CONTENThttp.HTTPStatus.NO_CONTENT
bfontaine

2
@bfontaine:或http.client.NO_CONTENT
Martijn Pieters

2
@bfontaine:位于http包docs的底部;这些用于为正常的位置,直到所述HTTPStatus枚举被引入,见github.com/python/cpython/commit/...
马亭皮特斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.