Django内置用户类AbstractUser与内置认证校验系统
内置用户类AbstractUser
我们在之前讲过了model模型的作用和父类的作用,这次介绍的内置用户类AbstractUser就是Django内置的一个关于用户操作的类,它极大地方便了我们对model模型中对User用户类的设计。而所谓内置用户类的本质也就是一个封装好的父类,所以使用起来是相当的方便。
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
我们通过查看AbstractUser的源码可以知道它设有几个字段
username = models.CharField(
_('username'),
max_length=150,
unique=True,
help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
validators=[username_validator],
error_messages={
'unique': _("A user with that username already exists."),
},
)
first_name = models.CharField(_('first name'), max_length=30, blank=True)
last_name = models.CharField(_('last name'), max_length=150, blank=True)
email = models.EmailField(_('email address'), blank=True)
is_staff = models.BooleanField(
_('staff status'),
default=False,
help_text=_('Designates whether the user can log into this admin site.'),
)
is_active = models.BooleanField(
_('active'),
default=True,
help_text=_(
'Designates whether this user should be treated as active. '
'Unselect this instead of deleting accounts.'
),
)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
内置认证校验系统
django自带的用户认证校验系统较为简单,主要就是认证用户名密码的正确与否
首先要在settings里面配置
AUTH_USER_MODEL = "user.User"
这是配合自带的用户类AbstractUser一起使用的
通常使用在类视图中的post方法校验用户登录等操作
在view中的具体代码如下
class LoginView(View):
def get(self,request):
return render(request,'login.html')
def post(self,request):
username = request.POST.get('username')
pwd = request.POST.get('pwd')
record = request.POST.get('record')
if not all([username,pwd]):
return HttpResponse('数据输入不完整')
user = authenticate(username=username,password=pwd)
return render(request,''index.html')
主要就是其中的user = authenticate(username=username,password=pwd)
两个参数都是拿到前端用户输入的信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!