在 Django 中创建和管理用户身份验证
- 创建 User 模型
在 Django 中,用户身份验证是通过 User 模型实现的。这个模型已经在 django.contrib.auth.models 中定义好了,我们只需要在我们的应用程序中创建一个更改用户表的扩展模型,并指定它作为 User 模型。
from django.db import models from django.contrib.auth.models import AbstractUser class CustomUser(AbstractUser): """ 扩展用户模型 """ # 自定义字段 bio = models.TextField(max_length=500, blank=True) location = models.CharField(max_length=30, blank=True) birth_date = models.DateField(null=True, blank=True)
- 配置身份验证
要开始使用身份验证,首先要在项目的 settings.py 文件中配置 AUTHENTICATION_BACKENDS 和 AUTH_USER_MODEL。
# settings.py AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', ] AUTH_USER_MODEL = 'myapp.CustomUser'
- 创建用户
可以使用 create_user() 函数创建一个新的用户。
from django.contrib.auth import get_user_model User = get_user_model() user = User.objects.create_user( username='pidancode', email='pidan@pidancode.com', password='mypassword' )
- 用户登录、登出
使用 Django 内置的登录视图函数,可以非常容易地为您的应用程序添加用户身份验证功能。
# urls.py from django.urls import path from django.contrib.auth import views as auth_views urlpatterns = [ path('login/', auth_views.LoginView.as_view(), name='login'), path('logout/', auth_views.LogoutView.as_view(), name='logout'), ]
- 用户权限
Django 通过分组和权限向用户分配权限。分组是一个把一组用户连接起来的逻辑元素,而权限则是授予用户或用户组执行操作的能力。
from django.contrib.auth.models import Group, Permission permission = Permission.objects.get(codename='my_permission') group = Group.objects.create(name='my_group') group.permissions.add(permission) user.groups.add(group)
相关文章