Django的内置登录、退出、修改密码方法

Django中内置的登录、退出、修改密码方法。

1、url.py中使用django.contrib.auth中的views函数,django.views.generic中的TemplateView函数

from django.contrib import admin
from django.urls import path
from django.conf.urls import url,include
from app import views
from django.conf.urls import url,include 
from django.contrib.auth import views as auth_views #使用默认的视图函数来实现loginlogout  
from django.views.generic import TemplateView


urlpatterns = [
    url('admin/', admin.site.urls), 
    url('login/$', auth_views.login, {"template_name": "registration/login.html"}, name="user_login"), # 内置login方法,定制页面,需设定settings中的默认页面 
    url('logout/$', auth_views.logout, {"template_name": "registration/logout.html"}, name="user_logout"),# 内置logout方法,定制页面 
    url(r'^password-change/$', auth_views.password_change,{'post_change_redirect': '/password-change-done'}, name="password_change"), #html页面在registration内,使用的内置方法,修改了页面 
    url(r'^password-change-done/$', auth_views.password_change_done, name="password_change_done"),
    url(r'home/',TemplateView.as_view(template_name="home.html"),name='home'),#默认的登录页面
    url(r'^$',TemplateView.as_view(template_name="home.html"),name='home'),
 ]

2、登录页面、退出页面

  可以使用默认的登录退出页面,但一般需要自己定制页面,实现功能的跳转。注意html文件存放在..\templates\registration下

login.html

{% extends "base.html" %}
{% load staticfiles %}
{% block title %}Login {% endblock %}
{% block content %}
    <div class="row text-center vertical-middle-sm">
        <h1>Login</h1>
        <p>Input your username and password</p>
        <form class="form-horizontal" action="{%  url 'user_login' %}" method="post" >{% csrf_token %}
            <!-- {{ form.as_p }} -->
            <div class="form-group">
                <label for="{{ form.username.id_for_label }}" class="col-md-5 control-label"
                       style="color:red"><span class="glyphicon glyphicon-user"></span>Username</label>
                <div class="col-md-6 text-left">{{ form.username }}</div>
            </div>
            <div class="form-group">
                <label for="{{ form.password.id_for_label }}" class="col-md-5 control-label"
                       style="color:blue"><span class="glyphicon-floppy-open"></span>Password</label>
                <div class="col-md-6 text-left">{{ form.password }}</div>
            </div>

            <input type="submit" class="btn btn-primary btn-lg" value="Login">
        </form>
    </div>
{% endblock %}

logout.html

{% extends "base.html" %}
{% block title %}Logout{% endblock %}
{% block content %}
    <div class="row text-center vertical-middle-sm">
        <p>You have log out!</p>
        <p>You can <a href="{% url 'user_login' %}"><strong>Login </strong> </a> again</p>
    </div>
{% endblock %}

 password_change_form.html

  password_change_done.html

 

猜你喜欢

转载自www.cnblogs.com/sdlyxyf/p/10361346.html