深入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字符串连接的N种方式总结
Sep 17 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python yield与实现方法代码分析
Feb 06 Python
python如何生成网页验证码
Jul 28 Python
python 获取url中的参数列表实例
Dec 18 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
python conda操作方法
Sep 11 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Python xmltodict模块安装及代码实例
Oct 05 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模板引擎Smarty的缓存使用总结
2014/04/24 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
python实现爬取图书封面
2018/07/05 Python
python代码编写计算器小程序
2020/03/30 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
一道SQL面试题
2012/12/31 面试题
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
小加工厂管理制度
2014/01/21 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
MySQL实现配置主从复制项目实践
2022/03/31 MySQL