django权限系统实现步骤_Django的用户模块与权限系统

一 导言

设计一个好的用户系统往往不是那么容易,Django提供的用户系统可以快速实现基本的功能,并可以在此基础上继续扩展以满足我们的需求。

先看看Django的用户系统都提供哪些功能:

提供用户模块(User Model)

权限验证(默认添加已有模块的增加删除修改权限)

用户组与组权限功能

用户鉴权与登录功能

与用户登录验证相关的一些函数与装饰方法

如配置了Django的用户系统,仅需调用Django提供的几个函数,便可实现用户的登录,注销,权限验证等功能。例如以下情景

1.登录

#some_view.py

from django.contrib.auth importauthenticate, logindeflogin(request):

username= request.POST['username']

password= request.POST['password']#Django提供的authenticate函数,验证用户名和密码是否在数据库中匹配

user = authenticate(username=username, password=password)if user is notNone:#Django提供的login函数,将当前登录用户信息保存到会话key中

login(request, user)#进行登录成功的操作,重定向到某处等

...else:#返回用户名和密码错误信息

...

2.注销

#some_view.py

from django.contrib.auth importlogoutdeflogout(request):#logout函数会清除当前用户保存在会话中的信息

logout(request)

3.验证是否登录

#some_view.py

defsome_fuction(request):

user=request.userif user.is_authenticated:#已登录用户,可以往下进行操作

else:#返回要求登录信息

4.验证是否有权限

#some_view.py

defsome_fuction(request):

user=request.userif user.has_perm('myapp.change_bar'):#有权限,可以往下进行操作

else:#返回禁止访问等信息

二 用户模块

Django的用户模块类定义在auth应用中,如要直接使用Django的用户类,在setting配置文件中的INSTALLAPP添加一行django.contrib.auth。

这样就可以在代码中直接用User类创建用户:

from django.contrib.auth.models importUser

user= User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')

user.last_name= 'Lennon'user.save()

看看Django的源码User类定义了什么属性:

classUser(Abst

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值