2010-12-14 5 views
0

web2pyコントローラでグローバル変数を使用したいと思いますが、私が見つけたように、コントローラはすべてのリクエストにロードされます。したがって、私のグローバル変数はどこでもアクセス可能ですが、読み取り専用です。変更はセッション/リクエスト全体に反映されません。web2pyコントローラのグローバル変数

グローバルをどこかで定義することは可能ですか?コントローラにグローバルオブジェクトを配置しようとしましたが、モデル/ 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

私はそれを試してみるべきです。私はデータベースをまったく使用しないことを考えましたが、今理解しているように、スケーリングなどを可能にするアーキテクチャーのために、グローバル変数を避けることは厄介です。 setattrの後にupdate + commitを指定してdbテーブルアクセスをカプセル化するオブジェクトの作業を開始しました。 – Jiri