何时使用WSGI中间件?

2024-05-14 11:03:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个路由器,获取请求的路径,将其与正则表达式匹配,并调用WSGI处理程序(如果regex匹配)。将具有匹配捕获组的dict添加到环境中。用WSGI中间件修改环境是不是不好?在

但这就是WSGI中间件被发明的目的吗?我刚刚读了WSGI Middleware Considered Harmful,想知道是否应该重写路由器使其不再是中间件。如果应用程序使用dict来捕获组,它就会依赖于我的中间件。另一方面,没有应用程序必须使用这个额外的dict。我也可以放弃路径参数提取,将路由器减少到路由,但是每个应用程序都必须再次运行regex来提取路径参数。在

所以该怎么办:

  • 保持原样;使用路由、路径参数提取和environ操作
  • 使路由器成为WSGI应用程序和当前WSGI应用程序框架特定的处理程序
  • 将路由器减少到路由并提取在请求路由到的应用程序中执行第二次正则表达式匹配以提取路径参数

Tags: 中间件路径目的应用程序处理程序wsgi路由参数
1条回答
网友
1楼 · 发布于 2024-05-14 11:03:52

如果您向环境中添加一些东西,然后在应用程序中使用这些东西,而没有任何回退,那么您必须在某种程度上将应用程序绑定到中间件。在

在这个特定的例子中,有一个关于如何将这些捕获的值添加到环境中的约定:wsgiorg.routing_args。因此,当您将引用这个捕获到您的应用程序中时,它并不是一个完全的即席通信。在

(尽管您肯定会过度使用中间件,但我认为这篇文章夸大了这种情况;中间件可以是一个很好的抽象,可以单独考虑、实现和测试应用程序的不同部分,即使最初这些部分是由一个人为一个单一目标而实现的)

相关问题 更多 >

    热门问题