#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)