Phản hồi trống có chủ ý của Python Flask


98

Có cách nào để trả về một phản hồi (từ make_response()đối tượng hoặc tương tự) với các thuộc tính nhất định để nó không hiển thị lại trang và cũng không làm bất cứ điều gì khác không. Tôi đang cố gắng chạy mã trên máy chủ mà không tạo ra bất kỳ đầu ra nào

Một 'return None' đơn giản tạo ra:

ValueError: View function did not return a response

Điều này có thể thực hiện được vì phần sau chỉ tải xuống một tệp và không hiển thị mẫu:

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

Câu trả lời:


170

Bạn đang phản hồi một yêu cầu, máy chủ HTTP của bạn phải trả lại thứ gì đó . Phản hồi HTTP 'trống phản hồi' là 204 No Content:

return ('', 204)

Lưu ý rằng việc trả lại tệp cho trình duyệt không phải là một phản hồi trống, chỉ khác với một phản hồi HTML.


13
Ftr: bạn có thể sử dụng httplib.NO_CONTENTđể tránh con số kỳ diệu.
dtk

11
Lưu ý rằng tương đương với Python 2 httplib.NO_CONTENTtrong Python 3 là http.HTTPStatus.NO_CONTENT.
bfontaine

2
@bfontaine: hoặchttp.client.NO_CONTENT
Martijn Pieters

2
@bfontaine: ở cuối httptài liệu gói ; đây từng là vị trí bình thường cho đến khi HTTPStatusenum được giới thiệu, xem github.com/python/cpython/commit/…
Martijn Pieters
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.