Outils pour utilisateurs

Outils du site


isn:flask_todo06

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 :
<a href="/exemple">accéder à la page exemple</a>
  • une URL dans un lien en utilisant la fonction url_for() qui précise le nom de la vue :
<a href="{{url_for('exemple')}}">accéder à la page exemple</a>

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
<form action="/exemple" method="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
<a href="/exemple/1">accéder à la page exemple</a>
  • 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:
<a href="{{url_for('exemple'), id=1}}">accéder à la page exemple</a>

dans la page python de l'application

  • un contrôle sur le type entier de l'information supplémentaire est ajouté
@app.route('/exemple/<int:id>')
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

isn/flask_todo06.txt · Dernière modification: 2019/03/23 18:44 (modification externe)