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转换摩斯密码示例
Feb 16 Python
Python开发实例分享bt种子爬虫程序和种子解析
May 21 Python
python图像处理之反色实现方法
May 30 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 Python
python实现五子棋小游戏
Mar 25 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
python返回数组的索引实例
Nov 28 Python
python 实现视频 图像帧提取
Dec 10 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 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
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
js跑马灯代码(自写)
2013/04/17 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
新东网科技Java笔试题
2012/07/13 面试题
岗位职责范本
2013/11/23 职场文书
《最可爱的人》教学反思
2014/02/14 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
怎样写家长意见
2015/06/04 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers
Hive日期格式转换方法总结
2022/06/25 数据库