创建一个简单的Django用户认证系统,你需要定义一个模型来存储用户信息,并使用Django内置的认证后端。以下是一个简化的例子:
首先,在你的Django应用中的models.py
文件中定义用户模型:
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
# 可以在这里添加额外的字段,例如电话号码,出生日期等
phone = models.CharField(max_length=15, blank=True)
def __str__(self):
return self.username
接下来,确保在你的settings.py
中配置了新的认证模型:
# settings.py
AUTH_USER_MODEL = 'your_app_name.CustomUser'
替换'your_app_name'
为你的应用名。
然后,你可以使用Django提供的方法来创建用户:
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
# 创建用户
new_user = User.objects.create_user('username', 'email@example.com', 'password')
new_user.save()
# 认证用户
user = authenticate(request, username='username', password='password')
if user is not None:
login(request, user)
# 用户登录成功
else:
# 用户登录失败
# 用户登出
logout(request)
这个例子展示了如何创建一个新用户,如何验证用户凭证,以及如何登出当前用户。记得在实际应用中处理表单验证和安全性相关的问题,例如使用forms.Form
或forms.ModelForm
来处理输入,使用{% csrf_token %}
在模板中添加CSRF令牌等。