【发布时间】:2010-09-05 13:40:30
【问题描述】:
我编写了一个路由器,它获取请求的路径,将其与正则表达式匹配,并在正则表达式匹配时调用 WSGI 处理程序。具有匹配捕获组的字典被添加到环境中。使用 WSGI 中间件修改环境是不是很糟糕?
但这就是 WSGI 中间件的发明目的吗?我刚刚阅读了WSGI Middleware Considered Harmful 并想知道是否应该重写我的路由器以不再是中间件。如果一个应用程序使用带有捕获组的dict,它就会依赖于我的中间件。另一方面,没有应用程序必须使用这个额外的字典。我也可以放弃路径参数提取并将路由器减少到路由,但是每个应用程序都必须第二次重新运行正则表达式以提取路径参数。
那该怎么办:
- 保持原样;带有路由、路径参数提取和
environ操作 - 使路由器成为 WSGI 应用程序和当前 WSGI 应用程序框架特定的处理程序
- 将路由器减少到路由并提取第二次执行正则表达式匹配,以便在请求路由到的应用程序中提取路径参数
【问题讨论】:
-
我刚刚阅读了您提到的文章,很想听听人们对这个话题的看法。请考虑通过将标题更改为 When not to use WSGI middleware? 来解决这个问题,例如 :)
-
我现在很清楚:你不应该向 WSGI 环境中添加未在 PEP 中命名的条目。