深入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爬虫之爬虫编写全记录
Nov 06 Python
Python实现的数据结构与算法之基本搜索详解
Apr 22 Python
开源Web应用框架Django图文教程
Mar 09 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
浅谈pytorch和Numpy的区别以及相互转换方法
Jul 26 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
Python numpy数组转置与轴变换
Nov 15 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
LyScript实现绕过反调试保护的示例详解
Aug 14 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
网上卖盒饭创业计划书
2014/01/26 职场文书
说明书怎么写
2014/05/06 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server