阿吉的Sanic教程--02基本配置

2. 配置

你的鼓勵是我前進的動力,請爲我點個贊吧!
(1) 基本的配置
任何系統的開發都是相當複雜的配置,配置文件一般都不會放到源碼中,配置文件需要根據應用不同的需求進行相應的的配置。本小節將介紹一些基本配置。
Sanic將通過配置對象進行配置參數的保存,配置選項可以通過點運算進行參數修改。

app = Sanic('myapp') #創建對象
app.config.DB_NAME = 'appdb' #設置參數
app.config.DB_USER = 'appuser' # 設置參數

如上示例進行了數據庫的基本配置,配置了數據庫名字與數據使用者的名字。

(2)導入配置
如果所有配置使字典的形式進行保存,那麼可以使用update進行一次性的全部設置。下面通過具體的例子進行說明,具體代碼如下所示:

db_settings = {
    'DB_HOST': 'localhost',
    'DB_NAME': 'appdb',
    'DB_USER': 'appuser'
}
  app.config.update(db_settings)

以上代碼使用update進行配置的更新。

注意:按照慣例只加載大寫字母的配置的配置選項,所以在設置鍵時要大寫字母。
Sainc不經提供了以上簡單的配置文件的方法,還提供了其他的方法進行配置,下面將進行相關的講述。

A. 從環境變量導入

任何以 “SANCI_”開頭的變量,都會被應用於Sainc的配置。列如:設置“RANIC_REQUEST_TIMEOUT”將會被自動處理成REQUEST_TIMEOUT並導入Sanic的控制,開發者可以根據自己的喜好設置識別前綴,代碼如下所示:

app= App(load_env=”MYAPP_”)

注意:所有字母要大寫並要寫出下劃線。
Sanic同時提供了禁止從環境中導入變量的設置,具體代碼如下:

app = Sanic(load_env=False)

B. 從對象中導入
Sainc模仿Flask的導入模式,可以通過類進行不斷的導入,比如一些默認的配置。下面舉例說明:

import myapp.default_settings
app = Sanic('myapp')
app.config.from_object(myapp.default_settings)

以上代碼進行通過配置文件進行設置。當然,這個類由開發者自己的定義。

C. 從文件中導入
通常一般部署都不回從分佈式文件中進行導入,因爲這樣做不夠安全,所以一般配置都屬於from_pyfile(path/to/file),有的時候可能開發者爲了安全不在配置文件中指定文件路徑,這種情況下可一下先進行環境變量聲明,在運行時候進行指定文件。具體示例如下所示:

聲名環境變量:

app = Sanic('myapp')
app.config.from_envvar('MYAPP_SETTINGS')

在命令行中進行指定和聲明:

$ MYAPP_SETTINGS=/path/to/config_file python3 myapp.py
INFO: Goin' Fast @ http://0.0.0.0:8000

最後在指定的文件中進行配置:

# config_file
DB_HOST = 'localhost'
DB_NAME = 'appdb'
DB_USER = 'appuser'

(3) 創建配置變量
框架默認的項目配置參數:

名稱 默認值 描述
REQUEST_MAX_SIZE 100000000 請求報文的字節數
REQUEST_BUFFER_QUEUE_SIZE 100 請求流的緩存隊列限制
REQUEST_TIMEOUT 60 請求超時時間(秒)
RESPONSE_TIMEOUT 60 響應超時時間(秒)
KEEP_ALIVE True 設置爲False時將設置短鏈接
KEEP_ALIVE_TIMEOUT 5 每個TCP鏈接保持的時間(秒)
GRACEFUL_SHUTDOWN_TIMEOUT 15.0 強制關閉非空鏈接的時間(秒)
ACCESS_LOG True 是否開啓登陸日誌功能
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章