English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flask Redirection and Errors

Die Flask-Klasse hat die redirect() -Funktion. Wenn aufgerufen, gibt sie ein Antwortobjekt zurück und leitet den Benutzer zu einem anderen Zielort mit der angegebenen Statuscode weiter.

Der Prototyp der redirect() -Funktion ist wie folgt -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by: de.oldtoolbag.com
# Date : 2020-08-08
Flask.redirect(location, statuscode, response)

In der obigen Funktion -

location Parameter ist die URL, zu der die Antwort umgeleitet werden soll. statuscode Parameter senden Sie an den Browserkopf, Standard ist302. response Parameter zur Instanziierung von Antworten.

Nachfolgende Statuscodes sind standardisiert -

HTTP_300_MULTIPLE_CHOICES HTTP_301_MOVED_PERMANENTLY HTTP_302_FOUND HTTP_303_SEE_OTHER HTTP_304_NOT_MODIFIED HTTP_305_USE_PROXY HTTP_306_RESERVED HTTP_307_TEMPORARY_REDIRECT

Der Standardstatuscode ist302dies ist die Seite 'Gefunden'.

In diesem Beispiel wird die redirect() -Funktion verwendet, um die Login-Seite bei fehlgeschlagenem Login erneut anzuzeigen.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by: de.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask, redirect, url_for, render_template, request
 # Initialize the Flask application
 app = Flask(__name__)
 @app.route('/)
 def index():
     return render_template('log_in.html')
 @app.route('/login', methods=['POST', 'GET'])
 def login():
     if request.method == 'POST' und
         request.form['username'] == 'admin':
         return redirect(url_for('success'))
     return redirect(url_for('index'))
 @app.route('/success())
 def success():
     return 'logged in successfully'
 if __name__ == '__main__':
     app.run(debug=True)

Die Flask-Klasse hat eine abort() -Funktion mit Fehlercode.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by: de.oldtoolbag.com
# Date : 2020-08-08
Flask.abort(code)

Der code-Parameter verwendet einen der folgenden Werte -

400 - Für falsche Anfragen 401 - Für nicht autorisierte 403 - Verboten 404 - Nicht gefunden 406 - Nicht akzeptabel 415 - Für nicht unterstützte Mediendateitypen 429 - Zu viele Anfragen

Hier werden einige feine Änderungen am login() -Funktion des obigen Codes vorgenommen. Um die 'Unauthourized'-Seite anzuzeigen, anstatt die Login-Seite neu anzuzeigen, wird sie durch einen Abbruch ersetzt (401Call of

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by: de.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask, redirect, url_for, render_template, request, abort
 app = Flask(__name__)
 @app.route('/)
 def index():
    return render_template('log_in.html')
 @app.route('/login', methods=['POST', 'GET'])
 def login():
     if request.method == 'POST':
         if request.form['username'] == 'admin':
             return redirect(url_for('success'))
         else:
             abort(401)
     else:
         return redirect(url_for('index'))
 @app.route('/success())
 def success():
     return 'logged in successfully'
 if __name__ == '__main__':
     app.run(debug=True)