Sanic框架配置操作分析


Posted in Python onJuly 17, 2018

本文实例讲述了Sanic框架配置操作。分享给大家供大家参考,具体如下:

简介

Sanic是一个类似Flask的Python 3.5+ Web服务器,它的写入速度非常快。除了Flask之外,Sanic还支持异步请求处理程序。这意味着你可以使用Python 3.5中新的闪亮的异步/等待语法,使你的代码非阻塞和快速。

在上一篇《Sanic框架蓝图》中已经讲到,如何在Sanic中使用蓝图,接下来将介绍一下Sanic的配置,任何相当复杂的应用程序都需要配置,这些配置烘焙到实现的代码中,不同的环境或安装有可能不同。

加载配置

Sanic支持许多种加载的配置的方法,接下来简单介绍:

config:Sanic拥有config应用程序中对象属性的配置,配置对象只是一个可以使用点符号或者字典来修改的对象:

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

由于配置对象还是一个字典,你可以使用它的update方法来一次设置多个值:

db_settings = {
  "DB_NAME":"python",
  "DB_USER":"root"
}
app.config.update(db_settings)

环境变量:任何使用SANIC_前缀定义的环境变量都将应用于sanic配置。例如,设置SANIC_REQUEST_TIMEOUT将被应用程序自动加载并输入到REQUEST_TIMEOUT配置变量中,你可以将不同的前缀传递给sanic:

app = Sanic(load_env="PYTHON_")

然后以PYTHON_为前缀的环境变量都将以去掉此前缀的方式被加载进来。例如,环境变量PYTHON_DB_USER:root将会在配置中以DB_USER:root出现。如果你想禁止从环境变量中加载,你可以将此值设置为False:

app = Sanic(load_env=False)

从一个对象:我们可以专门定义一个配置类或者模块来定义我们需要的配置选项和值,然后加载此类或模块

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

从一个文件:我们可以专门顶一个文件来定义我们需要的配置选项和值,只需要提供该文件的路径即可

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

内置配置

Sanic除了可以自己定义配置,还有一些开箱即用的配置,如下所示:

变量 说明
REQUEST_MAX_SIZE 100000000 最大的请求大小(字节)
REQUEST_TIMEOUT 60 请求超时时间(秒)
RESPONSE_TIMEOUT 60 响应超时时间(秒)
KEEP_ALIVE True 保持活着
KEEP_ALIVE_TIMEOUT 5 保持活着超时时间

这几个预定义的值可以在修改配置时进行修改或覆盖

更多关于Python相关内容可查看本站专题:《Python入门与进阶经典教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
python正则表达式之对号入座篇
Jul 24 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
通过shell+python实现企业微信预警
Mar 07 Python
python通过http下载文件的方法详解
Jul 26 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
python3 webp转gif格式的实现示例
Dec 10 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
详解Python flask的前后端交互
Mar 31 Python
Sanic框架蓝图用法实例分析
Jul 17 #Python
PyCharm设置SSH远程调试的方法
Jul 17 #Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 #Python
pycharm远程linux开发和调试代码的方法
Jul 17 #Python
Flask框架各种常见装饰器示例
Jul 17 #Python
详解基于django实现的webssh简单例子
Jul 17 #Python
Python爬虫之网页图片抓取的方法
Jul 16 #Python
You might like
php处理斐波那契数列非递归方法
2012/02/04 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
python实现根据图标提取分类应用程序实例
2014/09/28 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
酒店出纳岗位职责
2013/12/29 职场文书
韩国商务邀请函
2014/01/14 职场文书
开工仪式策划方案
2014/05/23 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
社团活动总结书
2014/06/27 职场文书
毕业生实习证明
2014/09/19 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书