Flask - budowanie adresów URL
Plik url_for()funkcja jest bardzo przydatna do dynamicznego budowania adresu URL dla określonej funkcji. Funkcja przyjmuje nazwę funkcji jako pierwszy argument i jeden lub więcej argumentów słów kluczowych, z których każdy odpowiada zmiennej części adresu URL.
Poniższy skrypt demonstruje użycie url_for() funkcjonować.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/admin')
def hello_admin():
return 'Hello Admin'
@app.route('/guest/<guest>')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name))
if __name__ == '__main__':
app.run(debug = True)
Powyższy skrypt posiada funkcję user(name) który akceptuje wartość swojego argumentu z adresu URL.
Plik User() funkcja sprawdza, czy otrzymany argument jest zgodny ‘admin’albo nie. Jeśli pasuje, aplikacja jest przekierowywana dohello_admin() funkcja za pomocą url_for(), w przeciwnym razie hello_guest() funkcja przekazująca otrzymany argument jako parametr gościa.
Zapisz powyższy kod i uruchom z powłoki Pythona.
Otwórz przeglądarkę i wprowadź adres URL jako - http://localhost:5000/user/admin
Odpowiedź aplikacji w przeglądarce to -
Hello Admin
Wprowadź następujący adres URL w przeglądarce - http://localhost:5000/user/mvl
Odpowiedź aplikacji zmienia się teraz na -
Hello mvl as Guest