加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 22:53:40 所属栏目:Python 来源:网络整理
导读:我知道以下添加中间件的方法 1)使用MIDDLEWARE_CLASSES向django添加自定义中间件组件 MIDDLEWARE_CLASSES = ( '......' 'path.to.custom.middlware',) 2)使用decorate_from_middlware添加视图特定的中间件 cache_page = decorator_from_middleware(CacheMidd

我知道以下添加中间件的方法
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或基本视图,使用中间件进行装饰,并在应用程序的每个视图中使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读