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中RawString的理解介绍
Jul 07 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
python获取多线程及子线程的返回值
Nov 15 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 Python
Python龙贝格法求积分实例
Feb 29 Python
Python爬虫爬取、解析数据操作示例
Mar 27 Python
python从PDF中提取数据的示例
Oct 30 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
Prometheus开发中间件Exporter过程详解
Nov 30 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 Mysql日期和时间函数集合
2007/11/16 PHP
PHP 实用代码收集
2010/01/22 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
Angular2 自定义validators的实现方法
2017/07/05 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
简单谈谈Python中的闭包
2016/11/30 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
将python安装信息加入注册表的示例
2019/11/20 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
我的中国梦演讲稿小学篇
2014/08/19 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
不要在HTML中滥用div
2021/05/08 HTML / CSS
Python使用Web框架Flask开发项目
2022/06/01 Python