我们都知道,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相关推荐

  1. Flask实现异步非阻塞

    1.简介 给大家先说明一下,什么是异步非阻塞. 异步非阻塞:说白了就是server端开启进程,client端同时向server发起多个请求,server端在处理请求的时候,不用等一个请求处理完了,再处 ...

  2. flask异步操作_Flask实现异步非阻塞请求功能实例解析

    本文研究的主要是Flask实现异步非阻塞请求功能,具体实现如下. 最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包. 关于gevent Geven ...

  3. flask异步操作_Flask-Flask实现异步非阻塞请求功能

    前言 最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包. 代码清单 下面放上代码清单,以后需要用到的时候直接移植即可. # coding=utf- ...

  4. tornado异步非阻塞实现方式

    目录 tornado异步非阻塞实现方式 1.多线程 2.老版协程 3.新版协程 实验 1.完全阻塞,同步代码 2.老版本协程 3新版本协程 4 多线程+新版协程,线程函数失效 5.线程+不声明异步,可 ...

  5. Python web框架 Tornado(二)异步非阻塞使用以及原理

    原文: http://www.liangxiansen.cn/2018/04/11/tornado/ 作者: 梁先森 稍有改动 Tornado默认是单进程单线程.实时的web特性通常需要为每个用户一个 ...

  6. 线程同步 阻塞 异步 非阻塞(转)

    同步:函数没有执行完不返回,线程被挂起 阻塞:没有收完数据函数不返回,线程也被挂起 异步:函数立即返回,通过事件或是信号通知调用者 非阻塞:函数立即返回,通过select通知调用者 这样看来异步和非阻 ...

  7. python3 异步 非阻塞 IO多路复用 select poll epoll 使用

    有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理还是有必要的. 下面记录下分别基于Select/Poll/Epoll的echo ser ...

  8. 真正的 Tornado 异步非阻塞

    其中 Tornado 的定义是 Web 框架和异步网络库,其中他具备有异步非阻塞能力,能解决他两个框架请求阻塞的问题,在需要并发能力时候就应该使用 Tornado. 但是在实际使用过程中很容易把 To ...

  9. 处理大并发之一 对异步非阻塞的理解

    处理大并发之一 对异步非阻塞的理解 在研究nginx和node.js的时候常会遇到异步.非阻塞等,之前自己也经常使用epoll,对其同步与阻塞,异步与非阻塞有了一定的认识,现对参考资料总结下. 首先讨 ...

最新文章

  1. Java中的DeskTop类
  2. PHP的file_put_contents函数把一个字符串写入文件中
  3. P3369-[模板]普通平衡树【Splay】
  4. 升级nodejs至最新
  5. python装饰器代码简洁_Python基础知识之装饰器(示例代码)
  6. ios与java交互_5、与iOS、Android的交互 实践篇——主动调用
  7. 签租房电子合同必须留意什么地方?
  8. 应用层故事难讲 公链集体押注DeFi背后 是黔驴技穷的无奈之举?
  9. 安防监控专用工业交换机与普通交换机的区别
  10. Linux下7z压缩解压软件区别
  11. 「随笔」前端面试 | 2022年前端面试基础必备
  12. Java添加一个滑动验证码,有啥可难的,分分钟加一个
  13. SpringMvc思维导图
  14. 电脑设备管理器无端口显示怎么办?
  15. Linux手动安装和部署github
  16. hmailserver + afterlogic 搭建webmail
  17. 更好地整理数据:windows下怎么让不同路径下的两个文件夹保持同步内容
  18. ..\Src\INA226.c(142): error: #20: identifier “GPIO_IDR_IDR9“ is undefined
  19. 如何实现一台机器上运行多个MySQL实例?
  20. python模拟登录网易163邮箱并发送SOS邮件

热门文章

  1. 他不怕被拒绝_不怕被拒绝,这几大星座男追人时最有耐心
  2. php模拟登录qq邮箱_PHP 利用QQ邮箱发送邮件的实现
  3. mysql事务传播属性_Spring事务传播属性和隔离级别详细介绍
  4. web目录字典_Metasploit -- 目录详解及常用命令
  5. python公开发行版本_Python2 最后一个版本发布,正式迈入 Python3 时代
  6. spring mvc 拦截器 HandlerInterceptor 的使用
  7. (原创总结) Quartus II 的在线调试方法
  8. raspberry pi_通过串行蓝牙从Raspberry Pi传感器单元发送数据
  9. 网卡驱动:stmmac DMA发送流程
  10. 借钱,一定要有还钱的素质