- 主题:gevent 为什么有 pywsgi 模块?
看了一下 gevent.pywsgi 模块的内容和 python 标准库的 wsgiref 很相似。
为什么 gevent 要自己搞一个这样的模块呢?
--
FROM 120.33.8.*
哥,我觉得你问这问题有点跌份啊
看看源码不就知道了?
【 在 hgoldfish 的大作中提到: 】
: 看了一下 gevent.pywsgi 模块的内容和 python 标准库的 wsgiref 很相似。
: 为什么 gevent 要自己搞一个这样的模块呢?
--
FROM 222.71.112.*
。。。。。。
【 在 JulyClyde 的大作中提到: 】
: 哥,我觉得你问这问题有点跌份啊
: 看看源码不就知道了?
--
FROM 101.84.200.*
那还得看源代码。人生苦短,如果大家有了解的话,顺便解答一下好了。如果没有的话,也不值得花时间去看那个源码,很少有直接用 wsgi 的场景。看了多半第二天又要忘掉。
【 在 JulyClyde 的大作中提到: 】
: 哥,我觉得你问这问题有点跌份啊
: 看看源码不就知道了?
--
FROM 120.33.8.*
先说一下class的继承关系:
服务器部分:
socketserver.SocketServer 纯虚基类
socketserver.TCPServer TCP协议,以每个连接作为request
http.server.HTTPServer 增加保存服务器名字和端口信息
http.server.ThreadingHTTPServer 增加基类ThreadMixIn
handler部分:
socketserver.StreamRequestHandler 纯虚基类
http.server.BaseHTTPRequestHandler 解析HTTP协议并支持Connection:Keep-Alive
http.server.SimpleHTTPRequestHandler增加支持以本地文件系统内容对外提供服务
http.server.CGIHTTPRequestHandler 增加支持CGI
平常使用-m http.server启动的就是上述ThreadingHTTPServer+Simple/CGI handler的组
合
wsgiref.WSGIServer的基类是HTTPServer不带Threading,性能应该是比较差的,不支持
并发
至于gevent那边,实现结构和标准库类似,只是把IO部分用gevent实现了
【 在 hgoldfish 的大作中提到: 】
: 那还得看源代码。人生苦短,如果大家有了解的话,顺便解答一下好了。如果没有的话
: ,也不值得花时间去看那个源码,很少有直接用 wsgi 的场景。看了多半第二天又要忘掉
: 。
--
修改:JulyClyde FROM 222.71.112.*
FROM 222.71.112.*