深入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获取赶集网招聘信息前篇
Apr 18 Python
Python简单实现enum功能的方法
Apr 25 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
用python打印1~20的整数实例讲解
Jul 01 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
Pycharm中如何关掉python console
Oct 27 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 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,ajax实现分页
2008/03/27 PHP
php入门教程 精简版
2009/12/13 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP explode()函数用法、切分字符串
2012/10/03 PHP
php实现的SESSION类
2014/12/02 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
微信小程序三级联动地址选择器的实例代码
2017/07/12 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
python中的对象拷贝示例 python引用传递
2014/01/23 Python
跟老齐学Python之编写类之三子类
2014/10/11 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
python与C互相调用的方法详解
2017/07/14 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python实现的特征提取操作示例
2018/12/03 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
python time()的实例用法
2020/11/03 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
入党自我鉴定范文
2013/10/04 职场文书
北京导游词
2015/02/12 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
中国梦宣传标语口号
2015/12/26 职场文书