Намеренный пустой ответ Python Flask

#python #flask #response

#python #flask #ответ

Вопрос:

Есть ли способ вернуть ответ (от make_response() object или аналогичный) с определенными свойствами, чтобы он не отображал страницу снова и ничего больше не делал. Я пытаюсь запустить код на сервере без генерации каких-либо выходных данных

Простое «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
  

Ответ №1:

Вы отвечаете на запрос, ваш HTTP-сервер должен что-то вернуть. Ответ HTTP ’empty response’ является 204 No Content :

 return ('', 204)
  

Обратите внимание, что возврат файла в браузер не является пустым ответом, просто отличается от ответа HTML.

Комментарии:

1. Ftr: вы можете использовать httplib.NO_CONTENT , чтобы избежать магического числа.

2. Обратите внимание, что эквивалент Python 2 httplib.NO_CONTENT в Python 3 является http.HTTPStatus.NO_CONTENT .

3. @bfontaine: или http.client.NO_CONTENT

4. @bfontaine: внизу http документов пакета ; раньше это было обычное местоположение, пока HTTPStatus не было введено перечисление, см. github.com/python/cpython/commit /…

Ответ №2:

Используйте Flask Response

со статусом 204 (без содержимого)

 from flask import Response

return Response(status=204)