python – Django – 特定于应用程序的中间件

前端之家收集整理的这篇文章主要介绍了python – Django – 特定于应用程序的中间件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我知道以下添加中间件的方法
1)使用MIDDLEWARE_CLASSES向django添加自定义中间件组件

MIDDLEWARE_CLASSES = (
     '......'
    'path.to.custom.middlware',)

2)使用decorate_from_middlware添加视图特定的中间件

cache_page = decorator_from_middleware(CacheMiddleware)

@cache_page(3600)
def my_view(request):
    pass

我的请求是如何创建特定于应用程序的中间件类

APPSPECIFIC_MIDDLEWARE_CLASSES = ( 'path.to.middlwareclass1','path.to.middlwareclass2','path.to.middlwareclass3',)

middlwareclass是函数还是类?
有没有使用url或任何其他方法来做到这一点.或者第二种方法是唯一的方法,并将所有中间件类分别添加到视图中?

更新:
http://python-social-auth.readthedocs.org/en/latest/pipeline.html
与about应用程序一样,SOCIAL_AUTH_PIPELINE仅适用于社交应用程序.这与全球项目设置不同..

提前致谢

最佳答案
这可能不是您想要的方式,因为django不会跟踪哪个视图来自哪个应用程序.但是你可以在process_view中创建一些带有条件的中间件,你可以在这里查看被调用的视图,并在视图符合你的标准时做一些事情(在这种情况下,视图来自特定的应用程序).

另一种方法是,如果您使用基于类的视图,则在应用程序中创建一些视图mixin或基本视图,使用中间件进行装饰,并在应用程序的每个视图中使用它.

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

猜你在找的Python相关文章