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对象体系深入分析
Oct 28 Python
python定时检查某个进程是否已经关闭的方法
May 20 Python
Python简明入门教程
Aug 04 Python
django之常用命令详解
Jun 30 Python
详解Python如何生成词云的方法
Jun 01 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
Django设置Postgresql的操作
May 14 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 Python
python绘图pyecharts+pandas的使用详解
Dec 13 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代码
2012/09/14 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
php微信公众号开发之简答题
2018/10/20 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
go语言计算两个时间的时间差方法
2015/03/13 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
Python中的元组介绍
2019/01/28 Python
python命令行工具Click快速掌握
2019/07/04 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
python 绘制国旗的示例
2020/09/27 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
家长给幼儿园的表扬信
2014/01/09 职场文书
助学金感谢信
2015/01/20 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python