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

Session de session Flask

Contrairement aux cookies, les données de session sont stockées sur le serveur. Une session est l'intervalle de temps pendant lequel le client se connecte au serveur et se déconnecte. Les données à stocker pendant cette session sont stockées dans un répertoire temporaire sur le serveur.

Un ID de session est attribué à chaque session client. Les données de session sont stockées en haut du cookie, et le serveur les signe de manière cryptée. Pour ce type de cryptage, l'application Flask a besoin d'une définition SECRET_KEY.

L'objet de session est également un objet dictionnaire de type clé-valeur qui contient des variables de session et leurs valeurs associées.

Par exemple, pour définir la variable de session 'username', utilisez l'instruction -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
Session['username'] = 'admin'

Pour supprimer une variable de session, utilisez la méthode pop().

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
session.pop('username', None)

Le code suivant est un exemple simple de comment fonctionne la session dans Flask. URL => '/' Indiquez à l'utilisateur de se connecter, car la variable de session username n'est pas définie.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
@app.route('/')
 def index():
    if 'username' in session:
       username = session['username']
          return 'Logged in as ' + username + ">'<br>' + \
          "<b><a href = "/logout'>click here to log out</">/b>"
    return "Vous n'êtes pas connecté <br><a href = "/login'>/b>" + \
       "cliquez ici pour vous connecter</b></a>"

Lorsque l'utilisateur navigue vers l'URL=>'/Lorsque login() est appelé par la méthode GET, il affiche la vue, car c'est une requête GET, ouvrant un formulaire de connexion.

Soumettre à nouveau le formulaire après remplissage du formulaire à l'URL=> /login, maintenant la variable de session est définie. L'application est redirigée vers l'URL=> /。 À ce moment-là, trouvez la variable de session: username。

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
@app.route('/login', methods=['GET', 'POST'])
 def login():
    if request.method == 'POST':
       session['username'] = request.form['username']
       return redirect(url_for('index'))
    return '''
    <form action="" method="post">
       <p><input type = text name = "username"/></p>
       <p<<input type = submit value = Login/></p>
    </form>
    '''

L'application contient également une fonction de vue logout(), qui supprime la valeur de la variable de session 'username'. Un redirige URL vers '/‘ Affiche la page de démarrage.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
@app.route('/logout')
 def logout():
    # Supprimer le nom d'utilisateur de la session s'il y est
    session.pop('username', None)
    return redirect(url_for('index'))

Exécutez l'application et accédez à la page d'accueil (assurez-vous de configurer la clé secrète de l'application).

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask, session, redirect, url_for, escape, request
 app = Flask(__name__)
 app.secret_key = 'any random string’

Le code complet est affiché ci-dessous -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask
 from flask import render_template
 from flask import request
 from flask import make_response
 from flask import Flask, session, redirect, url_for, escape, request
 app = Flask(__name__)
 app.secret_key = 'fkdjsafjdkfdlkjfadskjfadskljdsfklj'
 @app.route('/')
 def index():
     if 'username' in session:
         username = session['username']
         return 'Le nom d'utilisateur connecté est :' + username + ">'<br>' + \
                  "<b><a href = "/logout'>Cliquez ici pour se déconnecter</">/b>"
     return "Vous n'êtes pas connecté, <br><a href = "/login'>/b>" + \
          "Cliquez ici pour vous connecter</b></a>"
 @app.route('/login', methods=['GET', 'POST'])
 def login():
     if request.method == 'POST':
         session['username'] = request.form['username']
         return redirect(url_for('index'))
     return '''
    <form action="" method="post">
       <p><input type="text" name="username"/></p>
       <p><input type="submit" value="Se connecter"/></p>
    </form>
    '''
 @app.route('/logout')
 def logout():
    # Supprimer le nom d'utilisateur de la session s'il y est
    session.pop('username', None)
    return redirect(url_for('index'))
 if __name__ == '__main__':
     app.run(debug=True)

La sortie sera affichée comme suit. Cliquez sur le lien « Cliquez ici pour vous connecter»

Ce lien redirigera vers une autre interface. Entrez 'admin'.

L'écran affichera un message « Le nom d'utilisateur connecté est: adminVoici ainsi -