Django基础教程(112)Django认证和权限:别再造轮子了!Django“权限大宝剑”上手指南,让你的网站安全感爆棚!

嘿,伙计们!是不是每次开工新项目,一想到要搞用户登录、注册、权限管理,就一个头两个大?感觉又要复制粘贴一堆重复的代码,像个流水线工人?

别慌!今天咱就来深度盘一盘Django框架里自带的“大杀器”——认证与权限系统。这玩意儿就像是Django给你准备好的“权限大宝剑”,开箱即用,威力无穷。很多人只是用它打了个登录,却不知道它真正的实力有多深。

咱们的目标是:不光要用,还要懂! 走起!

第一章:拆解“大宝剑”——Django认证系统核心组件

Django的认证系统,说白了,就是帮你管好三件事:

  1. 你是谁?(认证)
  2. 你能干啥?(权限)
  3. 你属于哪一拨人?(用户组)

它主要由以下几个核心部分组成,咱们一个个来认识:

  • User模型(你的身份证):这是Django自带的用户模型,一张万能的用户信息表。里面自带了username, password, email, first_name, last_name等字段。它就是你在网站里的“身份证”。想用?直接 from django.contrib.auth.models import User 导入就行。
  • authenticate() 函数(门禁刷卡机):它的工作就是验证你的用户名和密码对不对。你给它用户名和密码,它去数据库里核对。核对成功,就返回一个合法的User对象;核对失败?返回None。它只负责“验明正身”,不负责让你“进门”。
  • login() 函数(让你“进门”并发会话小票):验明正身后,login()函数负责在服务器端开启一个会话(Session),并把会话ID塞进浏览器的Cookie里。这个动作,就相当于你刷卡通过后,门卫给你一张“本次访客”的小票,接下来你在园区里(网站内)的活动,就靠这张小票来识别你了。
  • logout() 函数(收回小票,请你出门):顾名思义,就是清理掉当前的用户会话,让你“登出”。
  • PermissionUser 模型(你的权限清单):Django自动为每个模型都创建了基础的增删改查权限(比如 polls.add_choice)。这些权限可以直接分配给单个用户(通过user.user_permissions),而用户自带两个超级实用的属性:is_staff(是否是管理员,能进后台)和 is_superuser(是否是超级管理员,为所欲为)。
  • @login_required 等装饰器(视图层的保安):这是最常用的权限控制手段之一。你只需要在视图函数上一行 @login_required,这个页面就只对登录用户开放了。没登录?自动给你踹到登录页面去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值