深入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命令行参数sys.argv使用示例
Jan 28 Python
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
Python2.x版本中cmp()方法的使用教程
May 14 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
Django 视图层(view)的使用
Nov 09 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
python+Django实现防止SQL注入的办法
Oct 31 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
python如何快速拼接字符串
Oct 28 Python
Python基于百度AI实现抓取表情包
Jun 27 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 读取文件的正确方法
2009/04/29 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
Python解析树及树的遍历
2016/02/03 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
营销总监岗位职责
2014/09/16 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
大学生英文求职信范文
2015/03/19 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python