深入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中规范定义命名空间的一些建议
Jun 04 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
使用matplotlib画散点图的方法
May 25 Python
Python2.7环境Flask框架安装简明教程【已测试】
Jul 13 Python
python交换两个变量的值方法
Jan 12 Python
Python之Class&Object用法详解
Dec 25 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
Python实现弹球小游戏
Aug 01 Python
python实现网页录音效果
Oct 26 Python
使用python实现学生信息管理系统
Feb 25 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 Python
Python torch.flatten()函数案例详解
Aug 30 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中heredoc与nowdoc介绍
2014/12/25 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
js模拟实现Array的sort方法
2007/12/11 Javascript
JavaScript的eval JSON object问题
2009/11/15 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
Bootstrap php制作动态分页标签
2016/12/23 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
ant design实现圈选功能
2019/12/17 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
windows 下python+numpy安装实用教程
2017/12/23 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
园林资料员岗位职责
2013/12/30 职场文书
元旦促销方案
2014/03/15 职场文书
我的长生果教学反思
2014/04/28 职场文书
科学发展观标语
2014/10/08 职场文书
避暑山庄导游词
2015/02/04 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
诚信教育主题班会
2015/08/13 职场文书