溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Sanic框架配置操作分析

發(fā)布時(shí)間:2020-09-03 06:01:04 來源:腳本之家 閱讀:161 作者:噴跑的豆子 欄目:開發(fā)技術(shù)

本文實(shí)例講述了Sanic框架配置操作。分享給大家供大家參考,具體如下:

簡(jiǎn)介

Sanic是一個(gè)類似Flask的Python 3.5+ Web服務(wù)器,它的寫入速度非???。除了Flask之外,Sanic還支持異步請(qǐng)求處理程序。這意味著你可以使用Python 3.5中新的閃亮的異步/等待語法,使你的代碼非阻塞和快速。

在上一篇《Sanic框架藍(lán)圖》中已經(jīng)講到,如何在Sanic中使用藍(lán)圖,接下來將介紹一下Sanic的配置,任何相當(dāng)復(fù)雜的應(yīng)用程序都需要配置,這些配置烘焙到實(shí)現(xiàn)的代碼中,不同的環(huán)境或安裝有可能不同。

加載配置

Sanic支持許多種加載的配置的方法,接下來簡(jiǎn)單介紹:

config:Sanic擁有config應(yīng)用程序中對(duì)象屬性的配置,配置對(duì)象只是一個(gè)可以使用點(diǎn)符號(hào)或者字典來修改的對(duì)象:

app = Sanic()
app.config.DB_NAME = "python"
app.config.DB_USER = "root"

由于配置對(duì)象還是一個(gè)字典,你可以使用它的update方法來一次設(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)來。例如,環(huán)境變量PYTHON_DB_USER:root將會(huì)在配置中以DB_USER:root出現(xiàn)。如果你想禁止從環(huán)境變量中加載,你可以將此值設(shè)置為False:

app = Sanic(load_env=False)

從一個(gè)對(duì)象:我們可以專門定義一個(gè)配置類或者模塊來定義我們需要的配置選項(xiàng)和值,然后加載此類或模塊

from config.Config import Config
app.config.from_object(Config)

從一個(gè)文件:我們可以專門頂一個(gè)文件來定義我們需要的配置選項(xiàng)和值,只需要提供該文件的路徑即可

app.config.from_pyfile("/aa/bb/cc")

內(nèi)置配置

Sanic除了可以自己定義配置,還有一些開箱即用的配置,如下所示:

變量 說明
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ì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI