有了Web架構和ORM架構,我們就可以開始裝配App了。
通常,一個Web App在運行時都需要讀取設定檔,比如資料庫的使用者名稱、口令等,在不同的環境中運行時,Web App可以通過讀取不同的設定檔來獲得正確的配置。
由於Python本身文法簡單,完全可以直接用Python原始碼來實現配置,而不需要再解析一個單獨的.properties或者.yaml等設定檔。
預設的設定檔應該完全符合本地開發環境,這樣,無需任何設定,就可以立刻啟動伺服器。
我們把預設的設定檔命名為config_default.py:
# config_default.pyconfigs = { 'db': { 'host': '127.0.0.1', 'port': 3306, 'user': 'www-data', 'password': 'www-data', 'database': 'awesome' }, 'session': { 'secret': 'AwEsOmE' }}
上述設定檔簡單明了。但是,如果要部署到伺服器時,通常需要修改資料庫的host等資訊,直接修改config_default.py不是一個好辦法,更好的方法是編寫一個config_override.py,用來覆蓋某些預設設定:
# config_override.pyconfigs = { 'db': { 'host': '192.168.0.100' }}
把config_default.py作為開發環境的標準配置,把config_override.py作為生產環境的標準配置,我們就可以既方便地在本地開發,又可以隨時把應用部署到伺服器上。
應用程式讀取設定檔需要優先從config_override.py讀取。為了簡化讀取設定檔,可以把所有配置讀取到統一的config.py中:
# config.pyconfigs = config_default.configstry: import config_override configs = merge(configs, config_override.configs)except ImportError: pass
這樣,我們就完成了App的配置。