Навмисна порожня відповідь Python Flask


98

Чи є спосіб повернути відповідь (від make_response()об’єкта чи подібного) з певними властивостями, щоб він не відображав сторінку знову і не робив нічого іншого. Я намагаюся запустити код на сервері, не генеруючи жодного результату

Проста функція "return None" дає:

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

Відповіді:


170

Ви відповідаєте на запит, ваш HTTP-сервер повинен щось повернути . Відповідь HTTP "порожня відповідь" 204 No Content:

return ('', 204)

Зверніть увагу, що повернення файлу до браузера - це не порожня відповідь, вона просто відрізняється від відповіді HTML.


13
Ftr: ви можете використовувати, httplib.NO_CONTENTщоб уникнути магічного числа.
dtk

11
Зверніть увагу, що еквівалентом Python 2 httplib.NO_CONTENTу Python 3 є http.HTTPStatus.NO_CONTENT.
bfontaine

2
@bfontaine: абоhttp.client.NO_CONTENT
Мартін Пітерс

2
@bfontaine: внизу httpпакета docs ; вони використовуються , щоб бути нормальним місцем , поки HTTPStatusперерахування не було введено, см github.com/python/cpython/commit / ...
Мартейн Пітерс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.