类似于itty,但使用webob请求、响应和异常对象
项目描述
你可以称之为增强的Webob itty。它借鉴了itty的形式,但允许使用传入的Request或Response对象。默认情况下,它使用WebOb的Request和Response,以及WebOb的。
为什么?
我们与itty合作,头撞了几次。我们非常喜欢它的操作方式,并认为我们可以将其与我们的最爱请求和响应对象结合使用。106行代码后,wee作为一个WSGI应用的调度器诞生了。
基本用法
这是一个超级简单的pony应用,用于展示wee的基本用法。基本上与itty相同,只是我们使用了完整的正则表达式字符串。
import wee
from wsgiref.simple_server import make_server
@wee.get(r'^/$')
def ponytime(request):
return "It's Pony time!"
@wee.post(r'^/$'):
def make_pony(request):
... make a pony ...
@wee.put('^/(?P<pony_name>\w+)$'):
def add_unicorn_horn(request, pony_name=None):
... change a pony ...
@wee.delete('^/(?P<pony_name>\w+)$'):
def kill_a_pony(request, pony_name):
... delete a pony ...
srv = make_server(host, port, wee.make_app())
srv.serve_forever()
使用前缀
有时你想要将wee应用挂载在现有的应用树中。
import wee
@wee.get('^/$')
def logical_root(request):
return "I'm an index"
registry = wee.PrefixRegistry(prefix='/my/crazy/existing/dispatch/tree')
wee.make_app(registry=prefix)
实验性的REST容器支持
有一些对创建简单CRUD容器(如下所示)的初步支持。
import wee
@wee.rest("^/candymountain")
class UnicornStable(wee.Resource):
subtype = 'unicorn_id'
def get(self):
... your list of unicorns ...
def post(self):
name = self.request.POST['unicorn-name']
... make a unicorn ...
def getitem(self, unicorn_id):
... serve a unicorn ...
def put(self, unicorn_id):
... change a unicorn ...
def delete(self, unicorn_id):
... kill a unicorn ...
REST动词生成一系列正则表达式,用于处理适当的动词,特别注意区分‘get’(/)和‘getitem’(/some_id)。
与itty的其他差异
唯一的另一个主要区别是,调度器的作用域限定于定义处理器的模块。这意味着多个wee应用可以在同一进程中运行,而不会相互覆盖。
我们不提供运行命令,也不提供流行框架的适配器。也许以后会提供。
覆盖率
coverage.py 目前显示 100%,但我们可能还有更多单元测试与栈测试。
等一下,我有点困惑……
“我什么时候用 itty,什么时候用 wee?”
你可能不应该使用任何一个。这是一个实验,所以看起来应该是 itty。
如果你够勇敢的话,当你想要做一些类似于 itty 或 sinatra 的事情,但使用 Webob 时,使用 wee。当你想要一些完全自包含的,没有依赖项,配置简单,希望尽可能快速运行的东西时,使用 itty。
致谢
Daniel Lindsley – itty 的作者
Matt George 和 Whit Morriss – Wee 的主要贡献者
项目详情
关闭
wee-0.1.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8781ef4b86b759c5f5409263dfba01a4936b73c2a221455a2728168ed4ec7ba8 |
|
| MD5 | db6fd81721f820a5b1ef2309a42997b3 |
|
| BLAKE2b-256 | 81266e15cf664e897dec4fc29f437e9828882dc9432f30c8c2f9a58d18b447f3 |