tetsunosukeのnotebook

tetsunosukeのメモです

GoogleAppsEngineでコンフィグ(ファイル)を持つ場合

そもそも設定ファイルとして index.yamlとapp.yamlがあるが、この二つのファイルから設定値を読み込むためのインターフェースが存在しない。となると基本的な設定は全てデータストアに置くしかないのか?

DataStore APIを使ってデータストアに置く場合、key_nameを利用することになるのだろうけど、そのデータをkey_nameで作成したときの取得の方法がいまいち。

データストアへのputは下記でやっておいて、(困ったことに管理画面からではkey nameを持った値を保存できない?)

class Config(BaseModel):
    value = db.StringProperty()
# putのコード
        appconfig = Config(key_name = 'config_name', value = 'config_value')
        appconfig.put()

データストアからの取得は下記のようにする

        appconfig = Config.get_by_key_name('config_name')
        value = appconfig.value

のが通常なのかもしれない。

あとはこれらの値をMemcache APIを用いてコントローラに記録させておけば良いかなという感じ。多分Memcacheに入れておくべきなのは、個々の値というよりも辞書の値として格納しておいた方が良いかも...と考えると、そもそもConfigクラスをModelとして作成する時点で、クラスのメンバをvalueにするだけではなくて、nameとvalueで持っておいた方がいいのかもしれない(そうするとnameがユニークにならないという問題があるけど、それは管理上なんとかすればいいんじゃないか...という)

で、ちょっと調べてみたんだけどもしかしてDjangoのsettingsとか使えばこの辺楽??