项目配置
Sanic中加载应用配置的方法与Flask类似,不同点主要是配置项来源格式和配置项内容。Sanic的配置项可以通过Sanic
实例中的.config
属性来访问,该属性提供了.update()
方法来从一个字典中更新配置项。Sanic中的配置项都是使用大写字母书写,单词之间使用连词符分隔开。
在默认情况下,Sanic会自动加载前缀为SANIC_
环境变量中的配置内容,如果需要更换一个前缀,可以在实例化Sanic
类时指定,例如:app = Sanic(load_env='WEBAPP_')
;如果不需要从环境变量中加载配置项,则可以将参数load_env
设置为False
来关闭自动加载功能。
sanic.config.Config
类中提供了以下几个方法来手动加载配置项,可以通过Sanic
实例中的.config
属性来调用。
.from_envvar(环境变量名)
,从环境变量指定的配置文件中加载项目配置,这里只需要提供指定了配置文件的环境变量名。.from_object(object)
,从指定对象中加载配置项,只会加载属性名全部为大写的属性。.from_pyfile(filename)
,从指定Python文件中加载配置项,只会加载其中名称全部为大写字母的变量及内容。
Sanic的内建配置项要比Flask少很多,所有配置项可以见下表。
配置项 | 默认值 | 配置功能 |
---|---|---|
REQUEST_MAX_SIZE | 100,000,000 | 一个请求的最大字节数 |
REQUEST_BUFFER_QUEUE_SIZE | 100 | 请求缓存队列长度 |
REQUEST_TIMEOUT | 60 | 请求抵达超时秒数 |
RESPONSE_TIMEOUT | 60 | 响应处理超时秒数 |
KEEP_ALIVE | True | 是否启用Keep-Alive功能 |
KEEP_ALIVE_TIMEOUT | 5 | TCP保持Keep-Alive的最长秒数 |
GRACEFUL_SHUTDOWN_TIMEOUT | 15.0 | 强制关闭非空闲连接的秒数 |
ACCESS_LOG | True | 是否允许记录访问日志 |
PROXIES_COUNT | -1 | 设置在Web应用之前放置的反向代理数量 |