2010-12-14 21 views
0

Ich möchte globale Variablen in web2py Controller verwenden, aber wie ich gefunden habe, Controller in jeder Anfrage geladen wird. Meine globale Variable ist also überall zugänglich, aber schreibgeschützt. Änderungen werden nicht bei Sitzungen/Anfragen berücksichtigt.Globale Variablen in web2py Controllern

Ist es möglich, Globals irgendwo zu definieren? Ich habe versucht, ein globales Objekt in den Controller zu legen, ich habe auch versucht, es in model/db.py zu schreiben.

+0

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

Antwort

2

Versuchen Sie, die Datenbank zu verwenden. Zum Beispiel könnten Sie eine Einstellungstabelle erstellen:

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() 

und greifen Sie dann mit:

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

Ich sollte es versuchen. Ich dachte darüber nach, überhaupt keine Datenbank zu verwenden, aber wie ich jetzt verstehe, ist es wegen der Architektur, die Skalierung usw. ermöglicht, notwendig, globale Variablen zu vermeiden. Ich habe angefangen, an einem Objekt zu arbeiten, das den db-Tabellenzugriff mit update + commit nach setattr enthält. – Jiri