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轻松查到删除自己的微信好友
Jan 10 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
对python调用RPC接口的实例详解
Jan 03 Python
python实现感知器算法(批处理)
Jan 18 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python修改字典键(key)的方法
Aug 05 Python
python 经典数字滤波实例
Dec 16 Python
Python restful框架接口开发实现
Apr 13 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
教你怎么用Python操作MySql数据库
May 31 Python
python中redis包操作数据库的教程
Apr 19 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
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
jQuery extend 的简单实例
2013/09/18 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
python 将字符串转换成字典dict
2013/03/24 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
linux 下实现python多版本安装实践
2014/11/18 Python
用Python编写web API的教程
2015/04/30 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
Python 判断奇数偶数的方法
2018/12/20 Python
python字典一键多值实例代码分享
2019/06/14 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
python中spy++的使用超详细教程
2021/01/29 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
竞选班长演讲稿
2013/12/30 职场文书
美德好少年主要事迹
2014/01/29 职场文书
两只小狮子教学反思
2014/02/05 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
红色经典电影观后感
2015/06/18 职场文书
500字作文之周记
2019/12/13 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫