Python学习笔记:7.3.3 Django快速建站 - 密码

本文是Python全栈工程师课程的Django部分,详细介绍了如何实现用户密码的修改和重置功能。包括新建模板文件、配置路由、处理未登录用户的访问限制、邮件配置及密码强度要求。通过实操演示了从发送重置密码邮件到用户成功修改密码的完整流程。
摘要由CSDN通过智能技术生成

前言:本文是学习网易微专业的《python全栈工程师 - Django快速建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!

一、课程目标
  • 实现修改密码功能
  • 实现重置密码功能
二、详情解读
2.1.修改密码

在这里插入图片描述
实操一:
Step1:新建模板文件myproject/templates/acount/password_change_form.html

{% extends 'base.html' %}

{% block title %}Password Change {% endblock %}

{% block content %}
<div class="row text-center vertical-middle-sm">
    <h1>修改密码</h1>
    <form action="." class="form-horizontal" method="post">
        {% csrf_token %}
        <div class="form-group">
            <label for="" class="col-md-5 control-label text-right">旧密码:</label>
            <div class="col-md-6 text-left">{
  { form.old_password }}</div>
        </div>
        <div class="form-group">
            <label for="" class="col-md-5 control-label text-right">新密码:</label>
            <div class="col-md-6 text-left">{
  { form.new_password1 }}</div>
        </div>
        <div class="form-group">
            <label for="" class="col-md-5 control-label text-right">确认密码:</label>
            <div class="col-md-6 text-left">{
  { form.new_password2 }}</div>
        </div>
        <input type="submit" value="修改密码" class="btn btn-primary btn-lg">
    </form>
</div>
{% endblock %}

说明:
1).注意新密码是{ { form.new_password1 }}、确认密码是{ { form.new_password2 }}

Step2:新建文件myproject/templates/account/password_change_done.html

{% extends 'base.html' %}
{% block title %}Password Change Done{% endblock %}

{% block content %}
<div class="row text-center">
    <p>密码修改成功</p>
</div>
{% endblock %}

Step3:配置url,修改文件myproject/mysite/account/urls.py

# -*- coding=utf-8 -*-
from django.urls import path
from . import views
from django.contrib.auth import views as auth_views

app_name = 'account'

urlpatterns = [
    # path('login/', views.user_login, name='user_login'),
    path('login/', auth_views.LoginView.as_view(template_name='account/login2.html'), name='user_login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='account/logout.html'), name='user_logout'),
    path('register/', views.register, name='user_register'),

	# 新增下面个路由
    path('password-change/',
         auth_views.PasswordChangeView.as_view(
             template_name='account/password_change_form.html',
             success_url='/account/password-change-done/'),
         name='password_change'),

    path('password-change-done/',
         auth_views.PasswordChangeDoneView.as_view(
            template_name = 'account/password_change_done.html'),
         name='password_change_done'),
]

说明:
1).success_url表示修改密码成功后跳转的路由
2).注意路由路径名用减号”-“,模板路径名用下划线”_"
3).新密码必须8个字符以上,并且不少于两种字符,否则修改将会失败,且没有任何提示,只是当前页面刷新。切记切记!!!!我是被坑过的人>_<

运行结果:
在这里插入图片描述

实操二: 当未登录用户访问修改密码路由时,会跳转到404页面,现在做如下 修改:

Step1:在文件myproject/mysite/settings.py末尾添加:

.
.
.
# 设置登录页面路由
LOGIN_URL = '/account/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>
    {% if next %}
    <form action="{% url 'account:user_login' %}?next={
    {next}}" class="form-horizontal" method="post">
    {% else %}
    <form class="form-horizontal" action="{% url 'account:user_login' %}" method="post">
    {% endif %}
        {% csrf_token %}
        <div class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值