Flask - Creazione di URL

Il url_for()è molto utile per costruire dinamicamente un URL per una funzione specifica. La funzione accetta il nome di una funzione come primo argomento e uno o più argomenti di parole chiave, ciascuno corrispondente alla parte variabile dell'URL.

Lo script seguente mostra l'uso di url_for() funzione.

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)

Lo script sopra ha una funzione user(name) che accetta un valore per il suo argomento dall'URL.

Il User() la funzione controlla se un argomento ricevuto corrisponde ‘admin’o no. Se corrisponde, l'applicazione viene reindirizzata al filehello_admin() funzione utilizzando url_for(), altrimenti al hello_guest() passandogli l'argomento ricevuto come parametro guest.

Salva il codice sopra ed esegui dalla shell Python.

Apri il browser e inserisci l'URL come - http://localhost:5000/user/admin

La risposta dell'applicazione nel browser è:

Hello Admin

Immettere il seguente URL nel browser: http://localhost:5000/user/mvl

La risposta dell'applicazione ora cambia in -

Hello mvl as Guest