====== Activité : les routes avec Flask ====== ===== Définir une route à partir d'un lien ===== ==== dans la page HTML ==== * une URL dans un lien en précisant le nom de **la route** : accéder à la page exemple * une URL dans un lien en utilisant la fonction **url_for()** qui précise le nom de **la vue** : accéder à la page exemple ==== dans la page python de l'application ==== * pour la réponse du serveur, utilisation d'une page HTML comme template avec des variables # @ est un décorateur et app.route définit la route /exemple @app.route('/exemple') def exemple(): # la fonction exemple est une vue # definir les actions à faire # definir le contenu des variables à utiliser dans le template donnee = "Information à afficher" render_template('exemple.html', message=donnee) * pour la réponse du serveur, utilisation d'une redirection en précisant la vue : **Méthode conseillée** @app.route('/autreexemple') def exemple(): # definir les actions à faire return redirect(url_for('exemple')) * pour la réponse du serveur, utilisation d'une redirection en précisant la vue : **Méthode NON conseillée** @app.route('/autreexemple') def exemple(): # definir les actions à faire return redirect('/exemple') ===== Définir une route à partir d'un formulaire ===== ==== dans la page HTML ==== * une URL dans un formulaire en précisant la méthode HTTP POST
==== dans la page python de l'application ==== * filtrage sur la méthode POST # @ est un décorateur et app.route définit la route /exemple @app.route('/exemple', methods=['POST']) def exemple(): # la fonction exemple est une vue donnee = "Information à afficher" render_template('exemple.html', message=donnee) ===== Définir une route personnalisée ===== ==== dans la page HTML ==== * une URL dans un lien en précisant le nom de **la route** et en ajoutant une information : ici 1 accéder à la page exemple * une URL dans un lien en utilisant la fonction **url_for()** qui précise le nom de **la vue** et le nom de 'information supplémentaire: accéder à la page exemple ==== dans la page python de l'application ==== * un contrôle sur le type entier de l'information supplémentaire est ajouté @app.route('/exemple/') def exemple(id): # le paramètre id reçu est passé en paramètre à la fonction # definir les actions à faire render_template('exemple.html') ==== Retour à l'activité : Utiliser le framework Flask pour créer un site Web dynamique ==== * [[.:flask_01|Activité : Utiliser le framework Flask pour créer un site Web dynamique]]