深入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 数据加密代码
Dec 24 Python
分享一个常用的Python模拟登陆类
Mar 29 Python
使用Python编写爬虫的基本模块及框架使用指南
Jan 20 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
python加载自定义词典实例
Dec 06 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
pygame实现弹球游戏
Apr 14 Python
Django Paginator分页器的使用示例
Jun 23 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
PHP实现获取域名的方法小结
2014/11/05 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
传智播客学习之java 反射
2009/11/22 Javascript
浅说js变量
2011/05/25 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
python中列表元素连接方法join用法实例
2015/04/07 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
Django多数据库的实现过程详解
2019/08/01 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
技术经济专业求职信
2014/09/03 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
通报表扬范文
2015/01/17 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
垂直极限观后感
2015/06/08 职场文书
在校生证明
2015/06/17 职场文书
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server