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编写简单的画图板程序的示例教程
Dec 08 Python
Ubuntu下安装PyV8
Mar 13 Python
Python中字符串的格式化方法小结
May 03 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
Python实现不规则图形填充的思路
Feb 02 Python
Python chardet库识别编码原理解析
Feb 18 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
Bootstrap输入框组件使用详解
2017/06/09 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
python获取豆瓣电影简介代码分享
2014/01/16 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
python实现用户答题功能
2018/01/17 Python
python将时分秒转换成秒的实例
2019/12/07 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
Python日志处理模块logging用法解析
2020/05/19 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
学校门卫管理制度
2014/01/30 职场文书
《菜园里》教学反思
2014/04/17 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书