8
我想要具有不同環境(開發和生產)不會更改的設置的通用配置。我知道我可以設置一個全局settings.py文件(例如,sql限制),但據我所知,金字塔需要在啓動時在ini文件中找到某些設置(例如,模板目錄路徑)。如何在金字塔中使用常見的ini配置(在開發和生產之間)?
我可以,如果是的話,我該怎麼做金字塔呢?
我想要具有不同環境(開發和生產)不會更改的設置的通用配置。我知道我可以設置一個全局settings.py文件(例如,sql限制),但據我所知,金字塔需要在啓動時在ini文件中找到某些設置(例如,模板目錄路徑)。如何在金字塔中使用常見的ini配置(在開發和生產之間)?
我可以,如果是的話,我該怎麼做金字塔呢?
有幾種可能的選擇,而不會超出PasteDeploy的INI範圍。但是,最重要的是,要實現INI文件模型的美妙之處在於能夠創建具有不同設置/配置的多個文件。是的,你必須保持它們同步,但它們只是設置(無邏輯),所以不應該是不可逾越的。
無論如何,PasteDeploy supports a default section由[app:XXX]
部分繼承。因此,您可以在其中放置常用設置,並有不同的[app:myapp-dev]
和[app:myapp-prod]
部分。
# settings.ini
[DEFAULT]
foo = bar
[app:myapp-dev]
use = egg:myapp
[app:myapp-prod]
use = egg:myapp
set foo = baz
這可以通過
env/bin/pserve -n myapp-dev settings.ini
運行另一種選擇是使用多個配置文件。
# myapp.ini
[app:myapp-section]
use = egg:myapp
foo = bar
# myapp-dev.ini
[app:main]
use = config:myapp.ini#myapp-section
foo = baz
# myapp-prod.ini
[app:main]
use = config:myapp.ini#myapp-section
這可以通過
env/bin/pserve myapp-prod.ini
運行。如果你不想使用PasteDeploy(INI文件),你可以做在Python中的東西,但也有這樣的結構是簡單的實實在在的好處。