阿吉的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 是否开启登陆日志功能
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章