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

Regole delle variabili Flask

È possibile costruire URL dinamici aggiungendo una parte variabile ai parametri della regola. Questa parte variabile è contrassegnata come <variable-name>. Viene passata come parametro chiave alla funzione associata alla regola.

Nell'esempio seguente, il parametro della regola del decoratore route() contiene una parte variabile aggiunta al segmento di variabile /hello. Pertanto, se si inserisce l'URL nel browser: http://localhost:5000/hello/w3codebox, allora 'w3codebox' verrà fornito come parametro alla funzione hello().

Rifati al seguente codice -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: it.oldtoolbag.com
# Date: 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/hello/<name>')
 def hello_name(name):
     return 'Hello %s!' % name
 if __name__ == '__main__':
     app.run(debug=True)

Salva lo script sopra nel file: hello.py e esegui dal Python Shell.

A questo punto, apri il browser e inserisci l'URL => http://localhost:5000/hello/w3codebox. Vedrai Hello w3codebox nel browser

Oltre al segmento di variabile stringa predefinito, possono essere utilizzati i seguenti costrutti dei convertitori -

NumeroConvertitoreDescrizione
1intAccetta interi
2floatPer valori a virgola mobile
3pathAccetta il simbolo di slash (/) come separatore di directory

Nella seguente codice, vengono utilizzati tutti questi costruttori.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: it.oldtoolbag.com
# Date: 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/blog/<int:postID>')
 def show_blog(postID):
     return 'Blog Numero %d' % postID
 @app.route('/rev/<float:revNo>')
 def revision(revNo):
     return 'Numero di Revisione %f' % revNo
 if __name__ == '__main__':
     app.run()

Esegui il codice sopra dal Python Shell. Accedi all'URL nel browser => http://localhost:5000/blog/11.

Il valore numerico dato viene utilizzato come parametro della funzione show_blog(). Il browser mostra l'output seguente -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: it.oldtoolbag.com
# Date: 2020-08-08
Blog Numero 11

Inserisci questo URL nel browser - http://localhost:5000/rev/1.1

La funzione revision() accetta un numero decimale come parametro. I seguenti risultati appaiono nella finestra del browser -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: it.oldtoolbag.com
# Date: 2020-08-08
Numero di revisione 1.100000

Le regole di URL di Flask si basano sul modulo di routing di Werkzeug. Questo garantisce che l'URL formato sia unico e basato sul precedente stabilito da Apache.

Considera le regole definite nel seguente script -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: it.oldtoolbag.com
# Date: 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/flask')
 def hello_flask():
     return 'Hello Flask'
 @app.route('/python/')
 def hello_python():
     return 'Hello Python'
 if __name__ == '__main__':
     app.run()

Le due regole sembrano molto simili, ma nella seconda regola, è stato utilizzato un trattino obliquo alla fine (/). Pertanto, è diventato un URL standard. Pertanto, usando /python o /python/ si ottiene lo stesso output. Tuttavia, nel primo caso, l'URL:/flask/ porta a una pagina 404 Not Found.