From 3c4742df48e7c66b5d274d0abf21f0b86e91db9a Mon Sep 17 00:00:00 2001 From: nux Date: Wed, 10 Feb 2010 00:39:27 +0000 Subject: [PATCH] Add french translation --- cookbook/sessions.fr.md | 78 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 cookbook/sessions.fr.md diff --git a/cookbook/sessions.fr.md b/cookbook/sessions.fr.md new file mode 100644 index 00000000..12064b67 --- /dev/null +++ b/cookbook/sessions.fr.md @@ -0,0 +1,78 @@ +--- +layout: default +title: Travailler avec les sessions +--- + +# Travailler avec les sessions + +Autre langages: [english](/../sessions) | ... + +### Problème + +Comment utiliser les sessions dans web.py. + +### Solution + +*Les sessions ne fonctionnent pas en mode [debug](/tutorial3.fr#debug) parce qu'elles interfèrent avec reloading. Veuillez lire [session_with_reloader](/session_with_reloader) pour plus de détail.* + +Le module `web.session` fournit un support session. Voici une application simple de compteur utilisant les sessions. + + import web + web.config.debug = False + urls = ( + "/count", "count", + "/reset", "reset" + ) + app = web.application(urls, locals()) + session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'count': 0}) + + class count: + def GET(self): + session.count += 1 + return str(session.count) + + class reset: + def GET(self): + session.kill() + return "" + + if __name__ == "__main__": + app.run() + +L'objet session est chargé avec des données session avant le traitement de la requête et sauve des données session après avoir traité la requête, si il est modifié. Notez que dans la version du 22-11-2008 de web.py, il faut désactiver le [débogage](/tutorial3.fr#debug) pour utiliser le serveur de développement avec les sessions. + +L'argument optionnel `initializer` de Session spécifie la session initiale. + + +Vous pouvez utiliser `DBStore` à la place de `DiskStore` si vous préférez stocker les sessions dans une base de donnée au lieu du disque. Pour utiliser DBStore, vous avez besoin d'une table avec la structure suivante: + + create table sessions ( + session_id char(128) UNIQUE NOT NULL, + atime timestamp NOT NULL default current_timestamp, + data text + ); + +Puis vous devez passer l'objet `db` et le nom de la table de session au constucteur de `DBStore`. + + db = web.database(dbn='postgres', db='mydatabase', user='myname', pw='') + store = web.session.DBStore(db, 'sessions') + session = web.session.Session(app, store, initializer={'count': 0}) + + +Des options relatives aux sessions peuvent être modifiées en utilisant le dictionnaire `sessions_parameters` dans `web.config`. Les valeurs par défaut sont montrées ci-dessous: + + web.config.session_parameters['cookie_name'] = 'webpy_session_id' + web.config.session_parameters['cookie_domain'] = None + web.config.session_parameters['timeout'] = 86400, #24 * 60 * 60, # 24 heures en secondes + web.config.session_parameters['ignore_expiry'] = True + web.config.session_parameters['ignore_change_ip'] = True + web.config.session_parameters['secret_key'] = 'fLjUfxqXtfNoIldA0A0J' + web.config.session_parameters['expired_message'] = 'La session expire.' + + * `cookie_name` - nom du cookie utilisé pour stocker la session id + * `cookie_domain` - domaine du cookie utilisé pour stocker l'ID de session + * `timeout` - nombre de secondes d'inactivité autorisées avant que la session expire + * `ignore_expiry` - if `True`, l'expiration de la session est ignoré + * `ignore_change_ip` - if `False`, la session est valide uniquement quand elle est accessible à partir de la même adresse IP qui l'a créé + * `secret_key` - clef utilisée dans la génération du hachage session id (demande d'explications plus détaillées)) + * `expired_message` - message affiché lorsque la session a expiré \ No newline at end of file