深入flask之异步非堵塞实现代码示例


Posted in Python onJuly 31, 2018

官方其实已经给出了方案,只不过藏的有点深,在加上网上有很多不太靠谱的帖子误导了我(当然不排除我没理解的原因哈)。所以为了让有些朋友的少走点弯路,也为给自己做个备忘。

完整代码:https://github.com/wskssau/my_notespace的 python/todo_app

解决方案: flask+gevent

安装gevent

pip install gevent

修改代码

# 文件头部
from gevent import monkey
from gevent.pywsgi import WSGIServer

# 在玩websockets,可以无视之哈,有空贴下flask websockets实现哈
from geventwebsocket.handler import WebSocketHandler

import time

# gevent的猴子魔法
monkey.patch_all()

app = Flask(__name__)

app.config.update(
 DEBUG=True
)

@app.route('/asyn/1/', methods=['GET'])
def test_asyn_one():
 if request.method == 'GET':
  time.sleep(10)
  return 'hello asyn'


@app.route('/test/', methods=['GET'])
def test():
 return 'hello test'


if __name__ == "__main__":
 # app.run()
 http_server = WSGIServer(('', 5000), app, handler_class=WebSocketHandler)
 http_server.serve_forever()

运行之后可以先访问/asyn/1/再访问/test/,可以明显发现,/asyn/1/在做耗时任务时不会影响其他请求

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python实现baidu hi自动登录的代码
Feb 10 Python
python和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
Python 内置函数complex详解
Oct 23 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
Python列表切片操作实例总结
Feb 19 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
Python集合操作方法详解
Feb 09 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
python中time tzset()函数实例用法
Feb 18 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 #Python
Windows下python3.6.4安装教程
Jul 31 #Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 #Python
win8下python3.4安装和环境配置图文教程
Jul 31 #Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 #Python
Win8下python3.5.1安装教程
Jul 29 #Python
win7下python3.6安装配置方法图文教程
Jul 31 #Python
You might like
php中长文章分页显示实现代码
2012/09/29 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
PHP的几个常用加密函数
2016/02/03 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
django使用html模板减少代码代码解析
2017/12/12 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
德尔福集团DELPHI的笔试题
2012/02/22 面试题
采购文员岗位职责
2013/11/20 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
撤诉书怎么写
2015/05/19 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android