flask 实现异步非阻塞----gevent
我们都知道,flask不支持异步非阻塞的请求,我们可以创建一个新项目去测试一下,推荐大家使用pycharm去开发我们的flask 使用特别的方便。
rom flask import Flask
import time
app = Flask(__name__)
@app.route('/')
def hello_world():time.sleep(10)return 'Hello World!'@app.route('/index')
def beijing():return 'Beijing'
if __name__ == '__main__':app.run()
这样我们实现了一个简单的;flask代码,我们让第一个视图休眠10s,第二个正常返回,
我们试着用浏览器访问下。
我们可以看到,这个时候我去访问第一个视图,一直处于加载中,这个时候我去访问第二个视图,也是处于一直加载中,那么我们怎么去修改呢,其实
我们gevent库就可以帮助我们去解决这个问题
from flask import Flask from gevent.pywsgi import WSGIServer from gevent import monkey import time monkey.patch_all() app = Flask(__name__) @app.route('/') def hello_world():time.sleep(10)return 'Hello World!'@app.route('/index') def beijing():return 'Beijing' if __name__ == '__main__':http_server = WSGIServer(('127.0.0.1', 5000), app)http_server.serve_forever()
修改后的代码如下,我们可以试着去请求下。
我们可以看到,当我们第一个阻塞住的时候,我们可以正常的去访问我们第二个路由
那么我们这样就可以实现我们异步的非阻塞的flask,
可以运用到实际的工作中。
推荐一个gevent学习的博客https://softlns.github.io/2015/11/28/python-gevent/
世上本没有路,走多了变有路。
作者寄语:
前进的道路我们充满着迷茫,
前进的每一步我们都会有收获。
路在脚下,我们决定不了我们的出身,但是我们可以努力改变我们未来。
告别昨天失败的自己,努力拼搏今天,成就美好明天
QQ:952943386 email:leileili126@163.com qq群:194704520 新群:683894834
转载于:https://www.cnblogs.com/leiziv5/p/8759673.html
flask 实现异步非阻塞----gevent相关推荐
- Flask实现异步非阻塞
1.简介 给大家先说明一下,什么是异步非阻塞. 异步非阻塞:说白了就是server端开启进程,client端同时向server发起多个请求,server端在处理请求的时候,不用等一个请求处理完了,再处 ...
- flask异步操作_Flask实现异步非阻塞请求功能实例解析
本文研究的主要是Flask实现异步非阻塞请求功能,具体实现如下. 最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包. 关于gevent Geven ...
- flask异步操作_Flask-Flask实现异步非阻塞请求功能
前言 最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包. 代码清单 下面放上代码清单,以后需要用到的时候直接移植即可. # coding=utf- ...
- tornado异步非阻塞实现方式
目录 tornado异步非阻塞实现方式 1.多线程 2.老版协程 3.新版协程 实验 1.完全阻塞,同步代码 2.老版本协程 3新版本协程 4 多线程+新版协程,线程函数失效 5.线程+不声明异步,可 ...
- Python web框架 Tornado(二)异步非阻塞使用以及原理
原文: http://www.liangxiansen.cn/2018/04/11/tornado/ 作者: 梁先森 稍有改动 Tornado默认是单进程单线程.实时的web特性通常需要为每个用户一个 ...
- 线程同步 阻塞 异步 非阻塞(转)
同步:函数没有执行完不返回,线程被挂起 阻塞:没有收完数据函数不返回,线程也被挂起 异步:函数立即返回,通过事件或是信号通知调用者 非阻塞:函数立即返回,通过select通知调用者 这样看来异步和非阻 ...
- python3 异步 非阻塞 IO多路复用 select poll epoll 使用
有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的. 下面记录下分别基于Select/Poll/Epoll的echo ser ...
- 真正的 Tornado 异步非阻塞
其中 Tornado 的定义是 Web 框架和异步网络库,其中他具备有异步非阻塞能力,能解决他两个框架请求阻塞的问题,在需要并发能力时候就应该使用 Tornado. 但是在实际使用过程中很容易把 To ...
- 处理大并发之一 对异步非阻塞的理解
处理大并发之一 对异步非阻塞的理解 在研究nginx和node.js的时候常会遇到异步.非阻塞等,之前自己也经常使用epoll,对其同步与阻塞,异步与非阻塞有了一定的认识,现对参考资料总结下. 首先讨 ...
最新文章
- Java中的DeskTop类
- PHP的file_put_contents函数把一个字符串写入文件中
- P3369-[模板]普通平衡树【Splay】
- 升级nodejs至最新
- python装饰器代码简洁_Python基础知识之装饰器(示例代码)
- ios与java交互_5、与iOS、Android的交互 实践篇——主动调用
- 签租房电子合同必须留意什么地方?
- 应用层故事难讲 公链集体押注DeFi背后 是黔驴技穷的无奈之举?
- 安防监控专用工业交换机与普通交换机的区别
- Linux下7z压缩解压软件区别
- 「随笔」前端面试 | 2022年前端面试基础必备
- Java添加一个滑动验证码,有啥可难的,分分钟加一个
- SpringMvc思维导图
- 电脑设备管理器无端口显示怎么办?
- Linux手动安装和部署github
- hmailserver + afterlogic 搭建webmail
- 更好地整理数据:windows下怎么让不同路径下的两个文件夹保持同步内容
- ..\Src\INA226.c(142): error: #20: identifier “GPIO_IDR_IDR9“ is undefined
- 如何实现一台机器上运行多个MySQL实例?
- python模拟登录网易163邮箱并发送SOS邮件
热门文章
- 他不怕被拒绝_不怕被拒绝,这几大星座男追人时最有耐心
- php模拟登录qq邮箱_PHP 利用QQ邮箱发送邮件的实现
- mysql事务传播属性_Spring事务传播属性和隔离级别详细介绍
- web目录字典_Metasploit -- 目录详解及常用命令
- python公开发行版本_Python2 最后一个版本发布,正式迈入 Python3 时代
- spring mvc 拦截器 HandlerInterceptor 的使用
- (原创总结) Quartus II 的在线调试方法
- raspberry pi_通过串行蓝牙从Raspberry Pi传感器单元发送数据
- 网卡驱动:stmmac DMA发送流程
- 借钱,一定要有还钱的素质