iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django使用装饰器限制对视图的访问及实现原理
  • 925
分享到

Django使用装饰器限制对视图的访问及实现原理

2024-04-02 19:04:59 925人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录Django使用装饰器限制对视图的访问1.登录鉴权装饰器2.@login_required3.@permission_requiredDjanGo使用装饰器限制对视图的访问 1.

DjanGo使用装饰器限制对视图的访问

1.登录鉴权装饰器

除了可以在视图处理中校验用户身份以及验证用户权限之外,Django还提供了便捷的装饰器来完成这两类校验。@login_required装饰器用来验证用户是否登录,只有登录的用户才可以访问视图,并获得响应,否则可以重定向到登录页引导用户登录。@permission_required装饰器用来校验用户是否具有特定的权限,只有校验通过的用户才可以访问视图。下面介绍这两个装饰器的使用方法与实现原理

2.@login_required

使用@login_required可以传递两个参数

  • login_url:匿名用户访问时重定向的URL,通常都会跳转到登录页。默认的登录页由settings.LOGIN_URL指定,需要设置为系统中定义的登录页URL
  • redirect_field_name:默认值为next,作为GET请求的参数。这个参数可以用于登录后直接跳回到原先访问的视图

3.@permission_required

使用@permission_required可以传递三个参数:

  • perm:需要校验的权限,可以是列表、元组或字符串。如果是列表或元组则需要用户同时拥有这些权限
  • login_url:没有指定权限的用户访问时重定向的URL,与@login_required中的login_url参数含义相同
  • raise_exception:默认为False,如果设置为True,则当没有权限的用户访问时将直接返回403

由于python支持给函数配置多个装饰器,所以,校验登录和校验权限的装饰器可以同时使用。例如:

在这里插入图片描述

这样,访问Topic详情视图时,不仅需要当前用户是已登录用户,还需要其同时拥有can_view_topic和add_topic两个权限

到此这篇关于Django使用装饰器限制对视图的访问的文章就介绍到这了,更多相关Django装饰器限制视图访问内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django使用装饰器限制对视图的访问及实现原理

本文链接: https://www.lsjlt.com/news/120740.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作