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的Django框架中的Cookie相关处理
Jul 22 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
python实现简易云音乐播放器
Jan 04 Python
java中两个byte数组实现合并的示例
May 09 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
基于python实现计算两组数据P值
Jul 10 Python
PyQt5的相对布局管理的实现
Aug 07 Python
python中turtle库的简单使用教程
Nov 11 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
tensorflow 中对数组元素的操作方法
2018/07/27 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
编辑找工作求职信分享
2014/01/03 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
工作态度检讨书
2014/02/11 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
法定代表人证明书
2014/11/28 职场文书
实习工作表现评语
2014/12/31 职场文书
节约用电通知
2015/04/25 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python