Sanic框架配置操作分析
本文實(shí)例講述了Sanic框架配置操作。分享給大家供大家參考,具體如下:
簡(jiǎn)介
Sanic是一個(gè)類似Flask的Python 3.5+ Web服務(wù)器,它的寫入速度非???。除了Flask之外,Sanic還支持異步請(qǐng)求處理程序。這意味著你可以使用Python 3.5中新的閃亮的異步/等待語(yǔ)法,使你的代碼非阻塞和快速。
在上一篇《Sanic框架藍(lán)圖》中已經(jīng)講到,如何在Sanic中使用藍(lán)圖,接下來(lái)將介紹一下Sanic的配置,任何相當(dāng)復(fù)雜的應(yīng)用程序都需要配置,這些配置烘焙到實(shí)現(xiàn)的代碼中,不同的環(huán)境或安裝有可能不同。
加載配置
Sanic支持許多種加載的配置的方法,接下來(lái)簡(jiǎn)單介紹:
config:Sanic擁有config應(yīng)用程序中對(duì)象屬性的配置,配置對(duì)象只是一個(gè)可以使用點(diǎn)符號(hào)或者字典來(lái)修改的對(duì)象:
app = Sanic() app.config.DB_NAME = "python" app.config.DB_USER = "root"
由于配置對(duì)象還是一個(gè)字典,你可以使用它的update方法來(lái)一次設(shè)置多個(gè)值:
db_settings = {
"DB_NAME":"python",
"DB_USER":"root"
}
app.config.update(db_settings)
環(huán)境變量:任何使用SANIC_前綴定義的環(huán)境變量都將應(yīng)用于sanic配置。例如,設(shè)置SANIC_REQUEST_TIMEOUT將被應(yīng)用程序自動(dòng)加載并輸入到REQUEST_TIMEOUT配置變量中,你可以將不同的前綴傳遞給sanic:
app = Sanic(load_env="PYTHON_")
然后以PYTHON_為前綴的環(huán)境變量都將以去掉此前綴的方式被加載進(jìn)來(lái)。例如,環(huán)境變量PYTHON_DB_USER:root將會(huì)在配置中以DB_USER:root出現(xiàn)。如果你想禁止從環(huán)境變量中加載,你可以將此值設(shè)置為False:
app = Sanic(load_env=False)
從一個(gè)對(duì)象:我們可以專門定義一個(gè)配置類或者模塊來(lái)定義我們需要的配置選項(xiàng)和值,然后加載此類或模塊
from config.Config import Config app.config.from_object(Config)
從一個(gè)文件:我們可以專門頂一個(gè)文件來(lái)定義我們需要的配置選項(xiàng)和值,只需要提供該文件的路徑即可
app.config.from_pyfile("/aa/bb/cc")
內(nèi)置配置
Sanic除了可以自己定義配置,還有一些開(kāi)箱即用的配置,如下所示:
| 變量 | 值 | 說(shuō)明 |
|---|---|---|
| REQUEST_MAX_SIZE | 100000000 | 最大的請(qǐng)求大小(字節(jié)) |
| REQUEST_TIMEOUT | 60 | 請(qǐng)求超時(shí)時(shí)間(秒) |
| RESPONSE_TIMEOUT | 60 | 響應(yīng)超時(shí)時(shí)間(秒) |
| KEEP_ALIVE | True | 保持活著 |
| KEEP_ALIVE_TIMEOUT | 5 | 保持活著超時(shí)時(shí)間 |
這幾個(gè)預(yù)定義的值可以在修改配置時(shí)進(jìn)行修改或覆蓋
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python入門與進(jìn)階經(jīng)典教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
pandas如何使用列表和字典創(chuàng)建?Series
這篇文章主要介紹了pandas如何使用列表和字典創(chuàng)建?Series,pandas 是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,下文我們就來(lái)看看文章是怎樣介紹pandas,需要的朋友也可以參考一下2021-12-12
Python的Flask框架中的Jinja2模板引擎學(xué)習(xí)教程
這篇文章主要介紹了Python的Flask框架中的Jinja2模板引擎學(xué)習(xí)教程,Jinja2模板引擎的用法也是Flask的Web開(kāi)發(fā)中的重要知識(shí),需要的朋友可以參考下2016-06-06
Python學(xué)習(xí)筆記之文件的讀寫操作實(shí)例分析
這篇文章主要介紹了Python學(xué)習(xí)筆記之文件的讀寫操作,結(jié)合實(shí)例形式詳細(xì)分析了Python常見(jiàn)的文件讀寫操作實(shí)現(xiàn)技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-08-08
Python3使用requests模塊實(shí)現(xiàn)顯示下載進(jìn)度的方法詳解
這篇文章主要介紹了Python3使用requests模塊實(shí)現(xiàn)顯示下載進(jìn)度的方法,結(jié)合實(shí)例形式分析了Python3中requests模塊的配置、使用及顯示進(jìn)度條類的相關(guān)定義方法,需要的朋友可以參考下2019-02-02
Pytorch實(shí)現(xiàn)LSTM和GRU示例
今天小編就為大家分享一篇Pytorch實(shí)現(xiàn)LSTM和GRU示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python創(chuàng)建簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)實(shí)例講解
在本篇文章里小編給大家整理的是一篇關(guān)于如何在Python中創(chuàng)建一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)的相關(guān)知識(shí)點(diǎn),有興趣的朋友們可以參考下。2021-01-01
python實(shí)現(xiàn)簡(jiǎn)單的井字棋小游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單的井字棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
淺析Python打包時(shí)包含靜態(tài)文件處理方法
這篇文章主要介紹了Python打包時(shí)包含靜態(tài)文件處理方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

