ary*_*yan 12 django middleware
我有点困惑process_request
和process_view
.
进程请求是您希望通过请求传递视图的内容.示例可以从中获取request.user
.
那会是什么process_view
呢?最初是为了执行任何视图而不是调用任何URL吗?像最初我想显示主页视图,但这也可以通过网址完成.
任何人都可以给我示例何时使用process_view
?
谢谢
Adr*_*uta 17
process_request
在Django确定哪个视图应该处理请求之前调用(因此,它只有参数是request
).
process_view
在Django确定哪个视图将处理请求之后但在调用该视图之前调用.它将具有request
对象的访问权限,以及将处理它的视图以及将传递给该视图的参数.
每当您需要知道将用于请求的视图时,您都可以使用process_view
.一个很好的例子是Django的CSRF中间件process_view
,如果请求所针对的视图中存在csrf_exempt装饰器,它将不会强制实施CSRF保护:
def process_view(self, request, callback, callback_args, callback_kwargs):
[...]
if getattr(callback, 'csrf_exempt', False):
return None
[...]
Run Code Online (Sandbox Code Playgroud)
Adrian Ghiuta 写了一个很好的答案。我只想补充几点。
process_request
做URL匹配前被调用,process_view
URL匹配之后,但调用该视图之前被调用。
我们可以使用process_request
来更改 url 本身,从而调用不同的视图。这一点帮助我理解了这些,所以我想回答它,也许其他人也会回答。
归档时间: |
|
查看次数: |
4158 次 |
最近记录: |