我编写了一个路由器,它采用请求的路径,将其与regex匹配,并调用wsgi处理程序(如果regex匹配)。将匹配捕获组的DICT添加到eVRION中。用wsgi中间件修改环境是不是不好?
但这就是wsgi中间件的发明目的吗?我刚刚读到WSGI Middleware Considered Harmful并想知道我是否应该重写我的路由器,使其不再是一个中间件。一个应用程序依赖于我的中间件,如果它使用带有捕获组的DICT。另一方面,没有应用程序必须使用这个额外的DIST。我也可以放弃路径PARAM提取并将路由器减少到路由,但是然后每个应用程序必须重新执行ReEX第二次用于路径参数提取。
那么该怎么办:
用路由、路径PARAM提取和environ操作
使路由器成为wsgi应用程序和当前wsgi应用程序框架特定的处理程序
在请求路由的应用程序中,减少路由器的路由,并提取第二次执行正则表达式匹配的路径参数提取。

最佳答案

如果你将内容添加到环境中,然后在应用程序中使用这些东西,没有任何回退,那么你必须在一定程度上将应用程序绑定到中间件。
在这种特殊情况下,有一个如何将捕获的值添加到环境中的约定:wsgiorg.routing_args。所以,当你把这个捕获的引用放到你的应用程序中时,它并不是一个完全的特设通信。
(尽管您肯定会过度使用中间件,但我认为这篇文章夸大了这种情况;中间件是一个很好的抽象,可以分别考虑、实现和测试应用程序的不同部分,即使最初这些部分是由一个人为一个单独的目标实现的)

关于python - 何时使用WSGI中间件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3646237/

10-14 18:05
查看更多