flask:wsgi-middleware vs before_和after_request()

前端之家收集整理的这篇文章主要介绍了flask:wsgi-middleware vs before_和after_request()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现使用Flask的before_request()和/或after_request()与使用WSGI中间件的区别究竟是多么令人困惑.

说我想做一些非常愚蠢的事情:

>每个请求体都应扫描“bacon”一词,并替换为“eggs”.
>现在请求命中flask-view(根据url-mapping),view-function创建响应
>每个响应体应扫描“蛋”并替换为“培根”

我会使用WSGI中间件还是Flask功能?来自django的非常强大的中间件套件,差异对我来说并不清楚.

提前致谢.
贝尔尼

解决方法

实际上,你在Django中有完全相同的选择. Django在某种程度上是基于WSGI构建的,因此理论上你也可以在Django中编写WSGI中间件或Django中间件.你没有混淆的原因是因为Django社区通常会引导开发人员远离WSGI中间件.一个原因是由于Django被设计为在 mod_python和WSGI上同等工作.通过使用Django中间件,您的中间件可以在两个系统上运行(参见 this post by James Bennett).

创建WSGI中间件的一个优点是它可以在多个框架中使用.例如,Beaker是一个会话和缓存WSGI中间件,可以在任何WSGI框架中使用.如果它是专门在Flask中编写的,那么Pyramid开发人员就无法使用它.该库的维护者特别确保该库可以在多个框架中工作,因此他将其编写为WSGI库.

基本上,这就是我做出决定的方式:

>如果您只是编写一个特定于您的应用程序的中间件,请使用框架的中间件.
>如果您认为您的中间件在一些应用程序中很有用,并且可能对其他人有用,那么仍然使用框架的中间件(Flask通常称之为“扩展”).以Flask-SQLAlchemy为例.>如果人们对您的中间件真正感兴趣并且愿意提供帮助,请考虑将其转换为WSGI中间件库,以便可以在其他框架中使用它.

原文链接:https://www.f2er.com/python/185834.html

猜你在找的Python相关文章