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原始字符串(raw strings)用法实例
Oct 13 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
python怎么调用自己的函数
Jul 01 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
Python文件名匹配与文件复制的实现
Dec 11 Python
python上下文管理器异常问题解决方法
Feb 07 Python
Python echarts实现数据可视化实例详解
Mar 03 Python
OpenCV实现常见的四种图像几何变换
Apr 01 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
php错误级别的设置方法
2013/06/17 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
Prototype使用指南之base.js
2007/01/10 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
python语言使用技巧分享
2016/05/31 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
局部内部类是否可以访问非final变量?
2013/04/20 面试题
土木工程应届生自荐信
2013/09/24 职场文书
护理学毕业生自荐信
2013/10/02 职场文书
实习老师离校感言
2014/02/03 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
给校长的建议书500字
2014/05/15 职场文书
员工保密承诺书
2014/05/28 职场文书
2014年党小组工作总结
2014/12/20 职场文书
三八节祝酒词
2015/08/11 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs