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

답변:


171

요청에 응답하고 있으며 HTTP 서버 무언가 반환 해야합니다 . HTTP '빈 응답'응답은 204 No Content다음과 같습니다.

return ('', 204)

브라우저에 파일을 반환하는 것은 HTML 응답과는 다른 빈 응답 이 아닙니다 .


14
Ftr : httplib.NO_CONTENT매직 넘버를 피하기 위해 사용할 수 있습니다.
dtk

11
httplib.NO_CONTENTPython 3 의 Python 2에 해당하는 것은 http.HTTPStatus.NO_CONTENT.
bfontaine

2
@bfontaine : 또는http.client.NO_CONTENT
Martijn Pieters

2
@bfontaine : http패키지 문서 하단에 있습니다 . 이러한 사용 까지 정상 위치로 HTTPStatusENUM 도입하고, 참조 github.com/python/cpython/commit/...
마티 피터스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.