通常,一個(gè)Web App在運(yùn)行時(shí)都需要讀取配置文件,比如數(shù)據(jù)庫(kù)的用戶名、口令等,在不同的環(huán)境中運(yùn)行時(shí),Web App可以通過(guò)讀取不同的配置文件來(lái)獲得正確的配置。
由于Python本身語(yǔ)法簡(jiǎn)單,完全可以直接用Python源代碼來(lái)實(shí)現(xiàn)配置,而不需要再解析一個(gè)單獨(dú)的.properties或者.yaml等配置文件。
默認(rèn)的配置文件應(yīng)該完全符合本地開發(fā)環(huán)境,這樣,無(wú)需任何設(shè)置,就可以立刻啟動(dòng)服務(wù)器。
我們把默認(rèn)的配置文件命名為config_default.py:
# config_default.py configs = { 'db': { 'host': '127.0.0.1', 'port': 3306, 'user': 'www-data', 'password': 'www-data', 'database': 'awesome' }, 'session': { 'secret': 'AwEsOmE' } }
上述配置文件簡(jiǎn)單明了。但是,如果要部署到服務(wù)器時(shí),通常需要修改數(shù)據(jù)庫(kù)的host等信息,直接修改config_default.py不是一個(gè)好辦法,更好的方法是編寫一個(gè)config_override.py,用來(lái)覆蓋某些默認(rèn)設(shè)置:
# config_override.py configs = { 'db': { 'host': '192.168.0.100' } }
把config_default.py作為開發(fā)環(huán)境的標(biāo)準(zhǔn)配置,把config_override.py作為生產(chǎn)環(huán)境的標(biāo)準(zhǔn)配置,我們就可以既方便地在本地開發(fā),又可以隨時(shí)把應(yīng)用部署到服務(wù)器上。
應(yīng)用程序讀取配置文件需要優(yōu)先從config_override.py讀取。為了簡(jiǎn)化讀取配置文件,可以把所有配置讀取到統(tǒng)一的config.py中:
# config.py configs = config_default.configs try: import config_override configs = merge(configs, config_override.configs) except ImportError: pass
這樣,我們就完成了App的配置。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com