深入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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
Django中对数据查询结果进行排序的方法
Jul 17 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
matplotlib设置legend图例代码示例
Dec 19 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
Python中list循环遍历删除数据的正确方法
Sep 02 Python
python实现贪吃蛇游戏源码
Mar 21 Python
Python lambda表达式原理及用法解析
Aug 18 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
python通过函数名调用函数的几种方法总结
Jun 07 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
简单的cookie计数器实现源码
2013/06/07 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
农历与西历对照
2006/09/06 Javascript
javascript Object与Function使用
2010/01/11 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
简介JavaScript错误处理机制
2020/08/04 Javascript
python解析json实例方法
2013/11/19 Python
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
tensorflow识别自己手写数字
2018/03/14 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
python3安装speech语音模块的方法
2018/12/24 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
10张动图学会python循环与递归问题
2021/02/06 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
创业计划书中要认真思考的问题
2013/12/28 职场文书
优秀纪检干部材料
2014/08/27 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
长城的导游词
2015/01/30 职场文书
违纪开除通知书
2015/04/25 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
python pygame 开发五子棋双人对弈
2022/05/02 Python
Java 多线程并发FutureTask
2022/06/28 Java/Android