Maison >développement back-end >Tutoriel Python >Comment puis-je transmettre des variables entre les pages dans une application Flask ?

Comment puis-je transmettre des variables entre les pages dans une application Flask ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 03:00:11359parcourir

How Can I Pass Variables Between Pages in a Flask Application?

Transmission de variables entre les pages Flask

Dans Flask, la transmission de variables entre les pages peut être réalisée via diverses méthodes, notamment les sessions, les paramètres de requête et voir args.

Sessions

Les sessions offrent un moyen simple de stocker les valeurs Python pour une récupération ultérieure. Ils se comportent comme un dictionnaire persistant qui survit à plusieurs requêtes. Pour utiliser des sessions, il suffit d'attribuer une variable au dictionnaire 'session' :

@app.route('/a')
def a():
    session['my_var'] = 'my_value'
    return redirect(url_for('b'))

Dans la page suivante, la valeur est accessible comme suit :

@app.route('/b')
def b():
    my_var = session.get('my_var', None)
    return my_var

Requête Paramètres

Les paramètres de requête vous permettent de transmettre les données d'une URL de modèle directement au gestionnaire de page. Ceci est utile pour transmettre de petites quantités de données qui n'ont pas besoin d'être conservées pour les demandes ultérieures. Pour utiliser des paramètres de requête, ajoutez le nom et la valeur du paramètre à l'URL dans le modèle :

<a href="{{ url_for('b', my_var='my_value') }}">Send my_value</a>

Cela produira une URL telle que /b?my_var=my_value, accessible dans le gestionnaire de page comme suit :

@app.route('/b')
def b():
    my_var = request.args.get('my_var', None)

View Args

View Args fournit un moyen de transmettre des données depuis l'URL directement dans la fonction d'affichage. Ceci est similaire aux paramètres de requête, mais les données ne sont pas exposées dans l'URL. Pour utiliser les arguments de vue, annotez la fonction route avec les types d'arguments attendus :

@app.route('/b/<my_var>')
def b(my_var):
    # Use 'my_var' in your view function

Notez que les arguments de vue ne peuvent pas être utilisés pour transmettre des données arbitraires, car ils sont annotés par type.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn