前言:本文是学习网易微专业的《python全栈工程师 - Django快速建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!
一、课程目标
- 了解
Django
内置的权限管理 - 使用内置应用实现登录、退出
二、详情解读
2.1.内置用户权限管理
2.1.1.内置功能
django.contrib.auth
:
–LoginView
–LogoutView
–PasswordChangeView
–PasswordResetView
–PasswordResetDoneView
–PasswordResetConfirmView
–PasswordResetCompleteView
详情参考官网:https://docs.djangoproject.com/en/3.0/topics/auth/default/#all-authentication-views
2.2.登录
2.2.1.前次课内容
- 登录表单类
- 登录视图函数
–authenticate
–login
- 登录模板
URL
配置
2.2.2.本次课
auth.views.LoginView
- 显示用户登录状态
详情参考官网:https://docs.djangoproject.com/en/3.0/topics/auth/default/#django.contrib.auth.views.LoginView
实操:
Step1
:修改路由。替换myproject/account/urls.py
为以下内容:
# -*- coding=utf-8 -*-
from django.urls import path
from . import views
# 引入 django 自带的 views ,
# 并取名为 auth_views 避免和上面的views名字冲突
from django.contrib.auth import views as auth_views
app_name = 'account'
urlpatterns = [
# path('login/', views.user_login, name='user_login'),
# 更改路由,这里模板用的 login2.html ,为了和上次课作区分。
path('login/', auth_views.LoginView.as_view(template_name='account/login2.html'), name='user_login'),
]
Step2
:编辑模板文件。新建文件myproject/templates/account/login2.html
{% extends 'base.html' %}
{% load staticfiles %}
{% block title %}Login{% endblock %}
{% block content %}
<div class="row text-center">
<h1>登录</h1>
<p>输入用户名和密码</p>
<form action="{% url 'account:user_login' %}" class="form-horizontal" method="post">
{% csrf_token %}
<div class="form-group">
<label for="" class="col-md-5 control-label">用户名:</label>