深入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的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
解析Python中的二进制位运算符
May 13 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
python实现TF-IDF算法解析
Jan 02 Python
python删除某个字符
Mar 19 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
pytorch masked_fill报错的解决
Feb 18 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
Jun 21 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
编辑浪子版表单验证类
2007/05/12 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
js保留两位小数方法总结
2018/01/31 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
浅谈Python基础之I/O模型
2017/05/11 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Python 列表的清空方式
2020/01/13 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
指针和引用有什么区别
2013/01/13 面试题
企业总经理岗位职责
2014/02/13 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
新员工入职感想
2015/08/07 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
微信小程序用户授权最佳实践指南
2021/05/08 Javascript