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 相关文章推荐
用十张图详解TensorFlow数据读取机制(附代码)
Feb 06 Python
python实现类之间的方法互相调用
Apr 29 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
python实现年会抽奖程序
Jan 22 Python
Python数据类型之List列表实例详解
May 08 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
python实现贪吃蛇游戏源码
Mar 21 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
python3.9.1环境安装的方法(图文)
Feb 02 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 file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
jQuery知识点整理
2015/01/30 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
python+django快速实现文件上传
2016/10/24 Python
python使用opencv进行人脸识别
2017/04/07 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
python psutil库安装教程
2018/03/19 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
草莓网官网:StrawberryNET
2019/08/21 全球购物
应届生求职推荐信
2013/10/28 职场文书
病媒生物防治方案
2014/05/13 职场文书
新闻学专业求职信
2014/07/28 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书