蜈蚣是一种wsgi微框架,带有一个简单的基于decorator的路由器。
centipede的Python项目详细描述
蜈蚣是一种WSGI微框架,带有一个简单的基于decorator的路由器它的优势在于,它对使用中的技术进行了建模,并试图避免将开发人员与复杂的模式和技巧混淆。它从urlrelay强继承。
安装
$ pip install centipede
定义处理程序
使用蜈蚣,可以将函数公开到url。函数返回string或tuple。字符串被视为文档体,http状态设置为200 OK并返回到浏览器如果返回元组,则需要status code,body和headersexpose decorator还支持一些参数。
from centipede import expose, app @expose('^/$') def index(request): """ Simple Hello """ return 'Hello IgglePigglePartyPants!' @expose('^/google$') def index(request): """ A redirect """ return (307, '', {'Location':'http://google.com'}) import json @expose('^/twitter','POST',content_type='application/json') def tweet_post(request): """ Tweet """ data = request['data'] text = data['text'] user = data['user'] tweet = magic.tweet(text, user) return json.dumps(tweet) @expose('^/twitter/(?P<tweet>\w+)$','GET',content_type='application/json') def twitter(request): """ Get a tweet """ id = req['wsgiorg.routing_args'][1]['tweet'] meta = request['params']['metadata'] tweet = magic.get_tweet(id, meta=meta) return json.dumps(tweet) application = app()
公开参数
暴露的装饰器如下所示:
expose(url_pattern, method='GET', content_type='text/html', charset='UTF-8')
请求
传递给公开的函数(request在上面的示例中)的参数是wsgienviron字典。为了方便起见,查询字符串参数和表单数据参数打包到环境的params和data键中。
查询字符串数据
为了方便起见,查询字符串参数可用作环境的params键中的字典。键和值都是使用urllib.unquote取消引用的。未引用的参数将传递给params_raw键。
表格数据
为了方便起见,表单数据可以作为environ的data键中的字典使用键和值都是使用urllib.unquote\u plus取消引用的未引用的参数传递给data_raw键
模板
我建议在客户端保持html模板的静态,并使用javascript模板库。但如果你真的需要一些服务器端模板,看看Mako。
静态文件
对于生产环境,您应该始终直接从web服务器或varnish缓存或其他地方托管静态文件但出于开发目的,您可以让蜈蚣通过传递a p p参数来提供静态文件:
app('path/to/static')
更改日志
0.2.5
- 分隔查询字符串参数和表单数据
- 在data键中形成数据
- 查询params键中的字符串参数
- 改进了对参数解包的错误处理(需要更多工作)
0.2.4
- 为post参数添加了urllib.unquote_plus。
- 在environ中添加了params_raw键,以防urllib.unquote弄乱参数。
0.2.3
- 在environ中添加了params键,以便于参数访问。
- 为参数添加了urllib.unquote
享受吧。