gevent的wsgi服务器的简单包装器。添加了简单的regex路由、错误处理和json/jsonp处理。
gserver的Python项目详细描述
gserver 0.2.0
为gevent提供基本路由引擎的简单包装 以及json/jsonp处理。
下面是一个简单的用法示例:
from gevent.monkey import patch_all; patch_all() from gevent import queue from gserver.routes import Routes from gserver.request import parse_vals from gserver.wsgi import WSGIServer routes = Routes() route = routes.route route_json = routes.route_json @route("^/example/$") def example(req): return "hello" @route("^/poll/$") def poll(request): yield ' ' * 1000 yield "hello" sleep(5) yield "goodbye" # connection is closed at this point @route("^/queue/$") def q(request): def process(b): b.put("<div>1</div>") sleep(1) b.put("<div>2</div>") sleep(1) b.put("<div>3</div>") body = queue.Queue() body.put(' ' * 1000) body.put("<!doctype html><html><head><title>hola</title><head><body>\n") gevent.spawn(process, body) return body @route_json("^/example/(?P<name>\w+)/$", method="GET,POST") def example_name(request, name=None): data = request.query_data if request.method == "POST": data = request.form_data query_age, query_height = parse_vals(data, "age", "height") return { "name": name, "age": query_age, "height": query_height } if __name__ == "__main__": server = WSGIServer(('', 9191), routes, log=None) server.serve_forever()
获取gserver
安装gevent,它的依赖项greenlet和libevent:
sudo easy_install gserver
从Python Package Index下载最新版本 或克隆the repository
更多文档正在进行中(查看site以获取更新)
提供任何关于bug tracker的反馈和问题,这些都应该很快就会出现。