深入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中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
浅谈function(函数)中的动态参数
Apr 30 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
Python OpenCV实现视频分帧
Jun 01 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
Python request使用方法及问题总结
Apr 26 Python
Python3 pywin32模块安装的详细步骤
May 26 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
微信红包随机生成算法php版
2016/07/21 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
浅谈javascript的调试
2015/01/28 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
使用pdb模块调试Python程序实例
2015/06/02 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
Python ORM编程基础示例
2020/02/02 Python
Python yield的用法实例分析
2020/03/06 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
程序集与命名空间有什么不同
2014/07/25 面试题
经济管理自荐书
2014/06/09 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书