2016-10-24 3 views
1

Ich weiß, dass Response ist, was Flask standardmäßig für HTTP-Antworten verwendet. Für spezifische Antwortformate verwende ich normalerweise make_response. Gibt es spezielle Fälle, in denen wir flask.Response anstelle von flask.make_response verwenden müssen? mit anderen Worten, funktioniert flask.make_response in allen Situationen oder manchmal flask.Response ist die einzige oder die bessere Alternative? Vielen Dank!Flask Response vs Flask make_response

Antwort

9

make_response() gibt Ihnen eine Bequemlichkeit Schnittstelle, eine, die Argumente in mehr Formate nehmen als die flask.Response() Aufgabe übernimmt.

Darüber hinaus verwendet make_response() das Flask.response_class Attribut (also app.response_class), um die Antwort zu erstellen. Der Standard Wert für Flask.response_class ist flask.Response, aber Sie können diesen Wert auf eine Unterklasse stattdessen festlegen.

So sollten Sie wirklich immer make_response() verwenden, anstatt verwenden flask.Response() direkt, vor allem, wenn Sie Auslagern unterstützen wollen, was Response Klasse, die Sie tatsächlich für Antworten verwenden.

Sie kann haben app.response_class direkt zu verwenden, wenn es sich um eine Unterklasse, die Argumente übernimmt, ist, dass make_response() nicht liefern kann.

+0

Vielen Dank für diese nützliche Antwort. Ich würde es begrüßen, wenn Sie ein Beispiel geben können, wenn ich 'app.response_class' verwenden muss, das Sie im letzten Teil Ihrer Antwort erwähnt haben. – ettanany

+1

@ettanany: Nun, 'Response()' benötigt spezifische Argumente, die 'make_response()' normalerweise liefern kann. Wenn Sie jedoch eine Unterklasse erstellen, die mehr Argumente benötigt, weiß 'make_response()' nichts darüber. Das ist also ein Grund, die Klasse direkt zu benutzen, der einzige Grund, an den ich hier denken kann. –

+0

Ich verstehe. Vielen Dank! – ettanany