2010-12-14 2 views
0

Я хочу использовать глобальные переменные в контроллере web2py, но, как я уже нашел, в каждом запросе загружаются контроллеры. Поэтому моя глобальная переменная доступна везде, но доступна только для чтения. Изменения не отражаются на сеансах/запросах.Глобальные переменные в контроллерах web2py

Можно ли определить глобалы где-нибудь? Я попытался поместить глобальный объект в контроллер, я также попытался поместить его в model/db.py.

+0

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

ответ

2

Попытайтесь использовать базу данных. Например, вы можете создать таблицу параметров:

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

А потом к нему доступ:

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

Я должен попробовать. Я думал о том, что не использую базу данных вообще, но, как я понял, из-за архитектуры, которая позволяет масштабировать и т. Д., Необходимо избегать глобальных переменных. Я начал работать над объектом, который инкапсулирует доступ к таблице db с помощью update + commit после setattr. – Jiri

Смежные вопросы