Python - Routing

Routing ist der Mechanismus zum direkten Zuordnen der URL zum Code, der die Webseite erstellt. Es hilft bei der besseren Verwaltung der Struktur der Webseite und erhöht die Leistung der Website erheblich, und weitere Verbesserungen oder Modifikationen werden wirklich einfach. In Python ist das Routing in den meisten Webframe-Arbeiten implementiert. Wir werden die Beispiele von sehenflask Web-Framework in diesem Kapitel.

Routing in der Flasche

Das route()Der Dekorator in Flask wird verwendet, um eine URL an eine Funktion zu binden. Wenn die URL im Browser erwähnt wird, wird die Funktion ausgeführt, um das Ergebnis zu erhalten. Hier URL'/hello' Regel ist an die gebunden hello_world()Funktion. Infolgedessen, wenn ein Benutzer besuchthttp://localhost:5000/ URL, die Ausgabe der hello_world() Funktion wird im Browser gerendert.

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
   return 'Hello Tutorialspoint'
if __name__ == '__main__':
   app.run()

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

* Serving Flask app "flask_route" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [06/Aug/2018 08:48:45] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -

Wir öffnen den Browser und zeigen auf die URL http://localhost:5000/ um das Ergebnis der ausgeführten Funktion zu sehen.

Verwenden von URL-Variablen

Wir können URL-Variablen über die Route weitergeben, um URLs im laufenden Betrieb zu erstellen. Dazu verwenden wir die Funktion url_for (), die den Namen der Funktion als erstes Argument und den Rest der Argumente als variablen Teil der URL-Regel akzeptiert.

Im folgenden Beispiel übergeben wir die Funktionsnamen als Argumente an die Funktion url_for und drucken das Ergebnis aus, wenn diese Zeilen ausgeführt werden.

from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index(): pass
@app.route('/login')
def login(): pass
@app.route('/user/
      
       ') def profile(username): pass with app.test_request_context(): print url_for('index') print url_for('index', _external=True) print url_for('login') print url_for('login', next='/') print url_for('profile', username='Tutorials Point') 
      

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

/
http://localhost/
/login
/login?next=%2F
/user/Tutorials%20Point

Weiterleitungen

Wir können die Umleitungsfunktion verwenden, um den Benutzer mithilfe des Routings zu einer anderen URL umzuleiten. Wir erwähnen die neue URL als Rückgabewert der Funktion, die den Benutzer umleiten soll. Dies ist hilfreich, wenn wir die Benutzer vorübergehend auf eine andere Seite umleiten, wenn wir eine vorhandene Webseite ändern.

from flask import Flask, abort, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
    return redirect(url_for('login'))
@app.route('/login')
def login():
    abort(401)
#    this_is_never_executed()

Wenn der obige Code ausgeführt wird, wechselt die Basis-URL zur Anmeldeseite, die die Abbruchfunktion verwendet, sodass der Code für die Anmeldeseite niemals ausgeführt wird.