本文来源:http://blog.csdn.net/yannanxiu/article/details/52915929 感谢作者!
前言
最近做物联网项目的时候需要搭建一个异步非阻塞的HTTP服务器,经过查找资料,发现可以使用gevent包。
关于gevent
Gevent 是一个Python并发网络库,它使用了基于 libevent 事件循环的 greenlet 来提供一个高级同步 API。下面是代码示例:
fromgevent.wsgiimportWSGIServer
fromyourapplicationimportapp
http_server = WSGIServer(('',5000), app)
http_server.serve_forever()
代码清单
下面放上Flask异步非阻塞的代码清单,以后需要用到的时候直接移植即可。
# coding=utf-8
# Python Version: 3.5.1
# Flask
from flask import Flask, request, g
# gevent
from gevent import monkey
from gevent.pywsgi import WSGIServer
monkey.patch_all()
# gevent endimporttime
app = Flask(__name__)
app.config.update(DEBUG=True)
@app.route('/asyn/', methods=['GET'])
deftest_asyn_one():
print("asyn has a request!")
time.sleep(10)
return'hello asyn'
@app.route('/test/', methods=['GET'])
deftest():return'hello test'
if__name__ =="__main__":
# app.run()
http_server = WSGIServer(('',5000), app)
http_server.serve_forever()