当前位置:   article > 正文

阿吉的Sanic教程--02基本配置_sanic 根据环境变量配置数据库

sanic 根据环境变量配置数据库

2. 配置

你的鼓励是我前进的动力,请为我点个赞吧!
(1) 基本的配置
任何系统的开发都是相当复杂的配置,配置文件一般都不会放到源码中,配置文件需要根据应用不同的需求进行相应的的配置。本小节将介绍一些基本配置。
Sanic将通过配置对象进行配置参数的保存,配置选项可以通过点运算进行参数修改。

app = Sanic('myapp') #创建对象
app.config.DB_NAME = 'appdb' #设置参数
app.config.DB_USER = 'appuser' # 设置参数
  • 1
  • 2
  • 3

如上示例进行了数据库的基本配置,配置了数据库名字与数据使用者的名字。

(2)导入配置
如果所有配置使字典的形式进行保存,那么可以使用update进行一次性的全部设置。下面通过具体的例子进行说明,具体代码如下所示:

db_settings = {
    'DB_HOST': 'localhost',
    'DB_NAME': 'appdb',
    'DB_USER': 'appuser'
}
  app.config.update(db_settings)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上代码使用update进行配置的更新。

注意:按照惯例只加载大写字母的配置的配置选项,所以在设置键时要大写字母。
Sainc不经提供了以上简单的配置文件的方法,还提供了其他的方法进行配置,下面将进行相关的讲述。

A. 从环境变量导入

任何以 “SANCI_”开头的变量,都会被应用于Sainc的配置。列如:设置“RANIC_REQUEST_TIMEOUT”将会被自动处理成REQUEST_TIMEOUT并导入Sanic的控制,开发者可以根据自己的喜好设置识别前缀,代码如下所示:

app= App(load_env=”MYAPP_”)
  • 1

注意:所有字母要大写并要写出下划线。
Sanic同时提供了禁止从环境中导入变量的设置,具体代码如下:

app = Sanic(load_env=False)
  • 1

B. 从对象中导入
Sainc模仿Flask的导入模式,可以通过类进行不断的导入,比如一些默认的配置。下面举例说明:

import myapp.default_settings
app = Sanic('myapp')
app.config.from_object(myapp.default_settings)
  • 1
  • 2
  • 3

以上代码进行通过配置文件进行设置。当然,这个类由开发者自己的定义。

C. 从文件中导入
通常一般部署都不回从分布式文件中进行导入,因为这样做不够安全,所以一般配置都属于from_pyfile(path/to/file),有的时候可能开发者为了安全不在配置文件中指定文件路径,这种情况下可一下先进行环境变量声明,在运行时候进行指定文件。具体示例如下所示:

声名环境变量:

app = Sanic('myapp')
app.config.from_envvar('MYAPP_SETTINGS')
  • 1
  • 2

在命令行中进行指定和声明:

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

最后在指定的文件中进行配置:

# config_file
DB_HOST = 'localhost'
DB_NAME = 'appdb'
DB_USER = 'appuser'
  • 1
  • 2
  • 3
  • 4

(3) 创建配置变量
框架默认的项目配置参数:

名称默认值描述
REQUEST_MAX_SIZE100000000请求报文的字节数
REQUEST_BUFFER_QUEUE_SIZE100请求流的缓存队列限制
REQUEST_TIMEOUT60请求超时时间(秒)
RESPONSE_TIMEOUT60响应超时时间(秒)
KEEP_ALIVETrue设置为False时将设置短链接
KEEP_ALIVE_TIMEOUT5每个TCP链接保持的时间(秒)
GRACEFUL_SHUTDOWN_TIMEOUT15.0强制关闭非空链接的时间(秒)
ACCESS_LOGTrue是否开启登陆日志功能
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/136803
推荐阅读
相关标签
  

闽ICP备14008679号