Python - Routage

Le routage est le mécanisme de mappage de l'URL directement sur le code qui crée la page Web. Il contribue à une meilleure gestion de la structure de la page Web et augmente considérablement les performances du site et d'autres améliorations ou modifications deviennent vraiment simples. En python, le routage est implémenté dans la plupart des travaux de cadre Web. Nous verrons les exemples deflask cadre Web dans ce chapitre.

Routage dans Flask

le route()decorator dans Flask est utilisé pour lier une URL à une fonction. Par conséquent, lorsque l'URL est mentionnée dans le navigateur, la fonction est exécutée pour donner le résultat. Ici, URL'/hello' la règle est liée à la hello_world()fonction. En conséquence, si un utilisateur visitehttp://localhost:5000/ URL, la sortie du hello_world() La fonction sera rendue dans le navigateur.

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

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

* 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 -

Nous ouvrons le navigateur et pointons vers l'URL http://localhost:5000/ pour voir le résultat de la fonction en cours d'exécution.

Utilisation des variables d'URL

Nous pouvons transmettre des variables d'URL en utilisant route pour créer des URL à la volée. Pour cela, nous utilisons la fonction url_for () qui accepte le nom de la fonction comme premier argument et le reste des arguments comme partie variable de la règle URL.

Dans l'exemple ci-dessous, nous transmettons les noms de fonction en tant qu'arguments à la fonction url_for et affichons le résultat lorsque ces lignes sont exécutées.

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') 
      

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

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

Redirige

Nous pouvons utiliser la fonction de redirection pour rediriger l'utilisateur vers une autre URL en utilisant le routage. Nous mentionnons la nouvelle URL comme valeur de retour de la fonction qui devrait rediriger l'utilisateur. Ceci est utile lorsque nous détournons temporairement les utilisateurs vers une page différente lorsque nous modifions une page Web existante.

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()

Lorsque le code ci-dessus est exécuté, l'URL de base va à la page de connexion qui utilise la fonction d'abandon afin que le code de la page de connexion ne soit jamais exécuté.