flask+gevent的异步框架
一:flask本身的框架时什么?
基于Wsgi的Web应用框架
二:为什么要实现异步架构?
增加并发处理能力
三:实现异步架构
from gevent import monkey from gevent.pywsgi import WSGIServer from geventwebsocket.handler import WebSocketHandler
monkey.patch_all()
from flask import Flask app = Flask(__name__) @app.route("/") def index(): pass if __name__ == "__main__": http_server = WSGIServer(("0.0.0.0", 12002), app,handler_class=WebSocketHandler) try: http_server.serve_forever() except KeyboardInterrupt: print("server has been stoped")
注意:为实现 Flask 与 gevent 的结合,需在程序开头引入 monkey patch。monkey patch 将以闭包的形式修改可以实现异步的标准库,从而实现异步。
注意:需使用支持 gevent 的 WSGI,例如:gevent.pywsgi、gunicorn 等
四:什么是wsgi?
Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口
五:什么是uwsgi?
uwsgi是一种通信协议,不过跟WSGI分属两种东西,该协议下速度比较快。
六:什么是uWSGI?
uWSGI是一个Web Server,并且独占uwsgi协议,但是同时支持WSGI协议、HTTP协议等,它的功能是把HTTP协议转化成语言支持的网络协议供python使用。