2010-12-14 22 views
0

Je veux utiliser des variables globales dans le contrôleur web2py mais comme je l'ai constaté, les contrôleurs sont chargés dans chaque requête. Donc, ma variable globale est accessible partout mais en lecture seule. Les modifications ne sont pas répercutées sur les sessions/demandes.Variables globales dans les contrôleurs web2py

Est-il possible de définir des globals quelque part? J'ai essayé de mettre l'objet global dans le contrôleur, j'ai aussi essayé de le mettre à model/db.py.

+0

http://www.mail-archive.com/[email protected]/msg30072.html – Anders

Répondre

2

Essayez d'utiliser la base de données. Par exemple, vous pouvez créer une table de paramètres:

db.define_table('settings, 
    Field('max_size', 'integer', default=10), 
    Field('summary', 'text', 'abc'), 
    ... 
) 
# create an instance of settings table 
settings = db(db.settings.id > 0).select().first() 
if not settings: 
    settings = db.settings.insert() 

Et alors l'accès avec:

settings.max_size # get the value 
settings.update_record(summary=new_summary) # set a value 
+0

Je devrais essayer. J'ai pensé à ne pas utiliser de base de données, mais comme je comprends maintenant, à cause de l'architecture qui permet la mise à l'échelle, etc., il est nécessaire d'éviter les variables globales. J'ai commencé à travailler sur un objet qui encapsule l'accès à la table db avec update + commit après setattr. – Jiri