深入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中的tkinter模块作图的方法
Feb 07 Python
python抓取需要扫微信登陆页面
Apr 29 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Django获取应用下的所有models的例子
Aug 30 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
Python post请求实现代码实例
Feb 28 Python
python 实现图像快速替换某种颜色
Jun 04 Python
为什么说python适合写爬虫
Jun 11 Python
带你学习Python如何实现回归树模型
Jul 16 Python
Python 操作 MySQL数据库
Sep 18 Python
python3 hdf5文件 遍历代码
May 19 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输出1000以内质数(素数)示例
2014/02/16 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
js实现随机点名功能
2020/12/23 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
经典c++面试题二
2015/08/14 面试题
营业员演讲稿
2013/12/30 职场文书
婚前协议书怎么写
2014/04/15 职场文书
忠诚教育心得体会
2014/09/03 职场文书
计划生育工作总结2015
2015/04/03 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
JavaScript设计模式之原型模式详情
2022/06/21 Javascript