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中的__init__ 、__new__、__call__小结
Apr 25 Python
python 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
使用Python的Zato发送AMQP消息的教程
Apr 16 Python
Python实现线程池代码分享
Jun 21 Python
Apache如何部署django项目
May 21 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
python批量创建指定名称的文件夹
Mar 21 Python
Python 静态方法和类方法实例分析
Nov 21 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 Python
Python的这些库,你知道多少?
Jun 09 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
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
javascript jQuery插件练习
2008/12/24 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
Python fileinput模块使用实例
2015/05/28 Python
Python中int()函数的用法浅析
2017/10/17 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
python Tornado框架的使用示例
2020/10/19 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
介绍一下XMLHttpRequest对象
2012/02/12 面试题
会计专业自荐信范文
2013/12/02 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
2014年减负工作总结
2014/12/10 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
商场圣诞节活动总结
2015/05/06 职场文书