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编程之微信推送模板消息功能示例
Aug 21 Python
利用Python批量提取Win10锁屏壁纸实战教程
Mar 27 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
Django框架视图介绍与使用详解
Jul 18 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
django使用channels实现通信的示例
Oct 19 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
图文详解matlab原始处理图像几何变换
Jul 09 Python
python的变量和简单数字类型详解
Sep 15 Python
分析Python list操作为什么会错误
Nov 17 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版(1)
2006/10/09 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php+MySql实现登录系统与输出浏览者信息功能
2016/07/01 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
自动更新作用
2006/10/08 Javascript
跟随鼠标旋转的文字
2006/11/30 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python struct模块解析
2014/06/12 Python
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
python交互模式基础知识点学习
2020/06/18 Python
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
亲情作文之母爱
2019/09/25 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python