嘿,伙计们!是不是每次开工新项目,一想到要搞用户登录、注册、权限管理,就一个头两个大?感觉又要复制粘贴一堆重复的代码,像个流水线工人?
别慌!今天咱就来深度盘一盘Django框架里自带的“大杀器”——认证与权限系统。这玩意儿就像是Django给你准备好的“权限大宝剑”,开箱即用,威力无穷。很多人只是用它打了个登录,却不知道它真正的实力有多深。
咱们的目标是:不光要用,还要懂! 走起!
第一章:拆解“大宝剑”——Django认证系统核心组件
Django的认证系统,说白了,就是帮你管好三件事:
- 你是谁?(认证)
- 你能干啥?(权限)
- 你属于哪一拨人?(用户组)
它主要由以下几个核心部分组成,咱们一个个来认识:
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()函数(收回小票,请你出门):顾名思义,就是清理掉当前的用户会话,让你“登出”。Permission与User模型(你的权限清单):Django自动为每个模型都创建了基础的增删改查权限(比如polls.add_choice)。这些权限可以直接分配给单个用户(通过user.user_permissions),而用户自带两个超级实用的属性:is_staff(是否是管理员,能进后台)和is_superuser(是否是超级管理员,为所欲为)。@login_required等装饰器(视图层的保安):这是最常用的权限控制手段之一。你只需要在视图函数上一行@login_required,这个页面就只对登录用户开放了。没登录?自动给你踹到登录页面去。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



