Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 50 lines (32 sloc) 1.682 kb
3d1a6b2 Add french translation
nux authored
1 ---
2 layout: default
3 title: Utiliser les sessions avec reloader
4 ---
5
6 # Utiliser les sessions avec reloader
7
8 Autre langages: [english](/../session_with_reloader) | ...
9
10 # Probleme
11
12 Il ya quelques problèmes en utilisant les sessions lors de l'exécution de l'application en mode [débogage](/tutorial3.fr#debug). Existe-t-il une méthode permettant de les contourner?
13
14 # Solution
15
16 web.py fait tourner le programme en mode débogage lorsqu'il fonctionne en utilisant le serveur intégré.
17
18 Un simple correctif pour ceci, est de désactiver le mode debug, ce qui peut être réalisé en déterminant `web.config.debug = False`.
19
20 import web
21 web.config.debug = False
22
23 # Le reste de votre code
24
25
26 Si vous voulez utiliser les sessions en mode debug, voici une solution de fortune.
27
28 Depuis que le mode de débogage permet le module reloading, le reloader charge le module principal à deux reprises (une fois comme __main__ et une fois avec son nom), deux objets session sont créés. Cela peut être évité en stockant la session dans un emplacement global afin d'éviter la création de la seconde.
29
30 Voici un exemple de code qui sauve la session dans «web.config».
31
32 import web
33 urls = ("/", "hello")
34
35 app = web.application(urls, globals())
36
37 if web.config.get('_session') is None:
38 session = web.session.Session(app, web.session.DiskStore('sessions'), {'count': 0})
39 web.config._session = session
40 else:
41 session = web.config._session
42
43 class hello:
44 def GET(self):
45 print 'session', session
46 session.count += 1
47 return 'Hello, %s!' % session.count
48
49 if __name__ == "__main__":
50 app.run()
Something went wrong with that request. Please try again.