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 2016

11
httplib.NO_CONTENTPython 3 のPython 2に相当するものはであることに注意してくださいhttp.HTTPStatus.NO_CONTENT
bfontaine 2017

2
@bfontaine:またはhttp.client.NO_CONTENT
Martijn Pieters

2
@bfontaine:httpパッケージdocsの下部にあります。これらは、使用されるまで、通常の位置であることがHTTPStatus列挙を導入し、参照github.com/python/cpython/commit/...
マルタインピータース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.