Django在django.contrib.auth.views.py中定义了几个用于登录、注销和密码管理的认证视图类。
要使用内置的认证视图,首先需要在配置文件中添加下面的URL配置。
urlpatterns = [
path('accounts/', include('django.contrib.auth.urls')),#导入内置认证视图URL配置
path('accounts/profile/',log_views.login_ok),#映射自定义的视图
……
]
Django在默认视图中会使用项目配置文件settings.py中设置的3个URL。
LOGIN_URL:默认的登录URL,默认值为“/accounts/login/”
LOGIN_REDIRECT_URL:默认的登录成功后转向的URL,默认值为“/accounts/profile/”。Django没有为“/accounts/profile/”定义默认视图,上面代码中的“log_views.login_ok”是自定义的视图。
LOGOUT_REDIRECT_URL:默认的注销登录后转向的URL,默认值为 None。
登录视图用于处理用户登录操作,该视图默认的URL模式名称为login。
在模板中可用{% url 'login' %}获取登录视图URL。
在采用GET方法访问登录视图时,视图显示默认登录表单。
当用户输入用户名和密码后再提交表单时,登录视图使用用户数据表auth_user中的数据验证用户名和密码是否正确。
用户通过验证时,视图调用login()方法,将用户的User对象写入Session对象,同时会在auth_user表中记录登录时间。
用户未通过验证时,重新显示登录页面,并在页面中显示错误提示信息。