Geben Sie den HTTP-Statuscode 201 in Flask zurück

Lesezeit: 2 Minuten

Benutzeravatar von ingh.am
ingh.am

Wir verwenden Flask für eine unserer APIs und ich habe mich nur gefragt, ob jemand weiß, wie man eine HTTP-Antwort 201 zurückgibt.

Bei Fehlern wie 404 können wir anrufen:

from flask import abort
abort(404)

Aber für 201 bekomme ich

LookupError: keine Ausnahme für 201

Muss ich meine eigene Ausnahme wie erstellen Das in den Unterlagen?

  • return '', 201

    – Luc

    11. Mai 2016 um 8:13 Uhr

  • Dies, da 201 kein Fehler ist. Es ist ein Erfolgsstatus.

    – Michael Murphy

    8. Juni 2021 um 21:05 Uhr

Sie können Response verwenden, um einen beliebigen HTTP-Statuscode zurückzugeben.

> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype="application/json")

Benutzeravatar von Iacks
Mängel

Sie können darüber lesen Hier.

return render_template('page.html'), 201

  • Dafür braucht man page.html… Es wird nicht von alleine funktionieren.

    – Chris Stryczynski

    14. November 2018 um 21:57 Uhr

  • Für mich funktionierte diese Art der Fehlerbehandlung (hinter IIS) nur, wenn InvalidUsage ein untergeordnetes Element von werkzeug.exceptions.HTTPException war, keine allgemeine Ausnahme

    – Gyula Sámuel Karli

    15. Juni 2020 um 9:36 Uhr

Benutzeravatar von Kishan K
Kishan K

Du kannst tun

result = {'a': 'b'}
return result, 201

Wenn Sie zusammen mit dem Fehlercode JSON-Daten in der Antwort zurückgeben möchten, können Sie sich über Antworten informieren Hier Und Hier für make_response-API-Details

Da es fehlt, senden Sie den Statuscode in der Rückgabeanweisung und wenn Sie ihn in einer Variablen wie speichern

notfound = 404
invalid = 403
ok = 200

und verwenden

return xyz, notfound

Stellen Sie dann sicher, dass der Typ int und nicht str ist. Als ich mit diesem kleinen Problem konfrontiert war, finden Sie hier auch eine Liste der Statuscodes, die weltweit befolgt werden
http://www.w3.org/Protocols/HTTP/HTRESP.html

Ich hoffe es hilft.

Benutzeravatar von Ben Wheeler
Ben Wheeler

In deinem Flask-Code solltest du idealerweise so oft wie möglich auch den MIME-Typ angeben:

return html_page_str, 200, {'ContentType':'text/html'}

return json.dumps({'success':True}), 200, {'ContentType':'application/json'}

…usw

Benutzeravatar von Matt Copperwaite
Matt Copperwaite

Lucs Kommentar hier abzuzocken, aber eine leere Antwort zurückzugeben, wie a 201 Die einfachste Möglichkeit ist, die folgende Rückfahrt in Ihrer Route zu verwenden.

return "", 201

Also zum Beispiel:

    @app.route('/database', methods=["PUT"])
    def database():
        update_database(request)
        return "", 201

Benutzeravatar von Pushprajsinh Chudasama
Pushprajsinh Chudasama

Sie können auch bottle_api zum Senden von Antworten verwenden

from flask_api import status

@app.route('/your-api/')
def empty_view(self):
    content = {'your content here'}
    return content, status.HTTP_201_CREATED

Referenz finden Sie hier http://www.flaskapi.org/api-guide/status-codes/

  • für die Verwendung einer Konstanten anstelle einer magischen Zahl positiv gestimmt

    – Sergej Gretschin

    27. Juni 2022 um 11:12 Uhr

1443270cookie-checkGeben Sie den HTTP-Statuscode 201 in Flask zurück

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy