之前的登陆什么的都是自己利用数据库查询,form组件,cookie及session保存状态实现的,比较花费时间,而Django自带的登录认证能帮助我们快速开发
数据库部分:
在我们在models.py创建表时,会发现Django会自动创建很多表,
其中有一个表名为:auth_user
这个表就是Django自带的用户表,可以利用它来实现登录认证等
先看一下这个表字段有哪些:
Django Auth模块自带User模型所包含字段
username:用户名
email: 电子邮件
password:密码
first_name:名
last_name:姓
is_active: 是否为活跃用户。默认是True
is_staff: 是否为员工。默认是False
is_superuser: 是否为管理员。默认是False
dat_joined: 加入日期。系统自动生成。
在models.py里的相关操作:
from django.contrib.auth.models import User
'''因为要用到它,所以要先导入'''
class UserInfo(models.Model):
user=models.OneToOneField(User,on_delete=models.CASCADE)
#和自带的User表一对一关联
role=models.CharField(max_length=32) #可以加扩展信息字段,比如年龄,性别,角色
这里注意一个问题,调试用的数据可以通过admin来添加,之后还有注册功能来添加数据
URL部分
urlpatterns = [
path('admin/', admin.site.urls),
path('login',views.acc_login),
path('logout',views.acc_logout,name="logout"), #模板里可以由name值通过{% url 'logout' %}获取url
path('crm',views.crm),
]
settings.py部分:
LOGIN_URL="/login" #(视图函数登录权限跳转要用)
Views部分
from django.shortcuts import render,redirect
from django.contrib.auth import authenticate,login,logout
from django.contrib