【Django基础】auth认证模块
在Django中,auth模块提供了用户认证系统,它处理用户账号、组、权限以及基于cookie的用户验证。以下是使用auth模块的一些基本方法:
- 用户管理:
创建用户:
from django.contrib.auth.models import User
user = User.objects.create_user('username', 'email@example.com', 'password')
更改密码:
user.set_password('new_password')
user.save()
- 组管理:
创建组:
from django.contrib.auth.models import Group
group = Group.objects.create(name='group_name')
将用户添加到组:
group.user_set.add(user)
- 权限管理:
为用户添加权限:
user.user_permissions.add(permission)
- 登录和登出:
登录视图中使用authenticate
来验证用户:
from django.contrib.auth import authenticate
user = authenticate(request, username='username', password='password')
if user is not None:
# A backend authenticated the credentials
pass
else:
# No backend authenticated the credentials
pass
在视图中登出用户:
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
- 装饰器:
login_required
装饰器强制用户登录才能访问视图:
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
# Do something for logged in users.
pass
user_passes_test
装饰器根据特定条件允许用户访问视图:
from django.contrib.auth.decorators import user_passes_test
def is_employee(user):
return user.is_employee # 假设用户模型有is_employee属性
@user_passes_test(is_employee)
def my_view(request):
# Do something for employee users.
pass
以上代码片段提供了使用Django auth模块的基本方法。在实际应用中,你需要根据具体需求调整这些方法。
评论已关闭