2011-09-27 2 views
15

各Pyramidアプリケーションには、その設定を含む.iniファイルが関連付けられています。そこに独自の構成値を追加することが可能である場合、私は疑問に思ってピラミッドと.iniの設定

[app:main] 
use = egg:MyProject 
pyramid.reload_templates = true 
pyramid.debug_authorization = false 
pyramid.debug_notfound = false 
pyramid.debug_routematch = false 
... 

、および(主にビュー呼び出し可能から)実行時にそれらを読む:たとえば、デフォルトでは次のようになります。例えば、別の.iniファイルを持っていると、起動時にそれを解析するために、私は

[app:main] 
blog.title = "Custom blog name" 
blog.comments_enabled = true 
... 

を持っている場合がありますまたはそれは良いですか?

答えて

26

もちろん可能です。

エントリポイントの機能(多くの場合、main(global_config, **settings)__init__.py)では、settings変数で設定にアクセスできます。あなたの.iniで例えば

、:あなたの__init__.py

[app:main] 
blog.title = "Custom blog name" 
blog.comments_enabled = true 

def main(global_config, **settings): 
    config = Configurator(settings=settings) 
    blog_title = settings['blog.title'] 
    # you can also access you settings via config 
    comments_enabled = config.registry.settings['blog.comments_enabled'] 
    return config.make_wsgi_app() 

latest Pyramid docsによると、あなたはrequest.registry.settings経由ビュー機能の設定にアクセスすることができます。また、私が知る限り、それはevent.request.registry.settingsを介してイベント加入者になります。

別のファイルを使用することについてのあなたの質問に関しては、あなたが行ったようにドット付き表記を使用して、すべての設定を通常のinitファイルに入れることをお勧めします。

関連する問題