wangtenghui

修改密码的整体布局

  urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r\'^admin/\', admin.site.urls),
    url(r\'^register/\', views.register),
    url(r\'^login/\',views.login),
    url(r\'^get_code/\',views.get_code),
    url(r\'^home/\',views.home),
    url(r\'^logout/\',views.logout),
    url(r\'^set_password/\',views.set_password),

修改密码页面

set_password.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css">
    <script src="/static/bootstrap-3.3.7/js/bootstrap.min.js"></script>
<body>

<div class="container-fluid">
    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <h2 class="text-center">修改密码</h2>
            <form action="" method="post">
                {% csrf_token %}
                <div class="form-group">
                    <label for="id_username">用户名</label>
                    {#不可修改,修改密码的用户名显示在修改页                    #}
                    <input type="text" name="username" id="id_username" class="form-control" disabled
                           value="{{ request.user.username }}">
                </div>
                <div class="form-group">
                    <label for="id_old_password">旧密码</label>
                    <input type="password" name="old_password" id="id_old_password" class="form-control">
                </div>
                <div class="form-group">
                    <label for="id_new_password">新密码</label>
                    <input type="password" name="new_password" id="id_new_password" class="form-control">
                </div>
                <div class="form-group">
                    <label for="id_confirm_password">确认密码</label>
                    <input type="password" name="confirm_password" id="id_confirm_password" class="form-control">
                </div>
                <button class="btn btn-primary" id="id_button">修改数据</button>
                {#错误消息的提示#}
                <span class="error" style="color: red" id="id_error"></span>
            </form>
        </div>
    </div>
</div>
</body>
</html>

 

修改密码代码

views.py

def set_password(request):
    old_password = request.POST.get(\'old_password\')
    new_password = request.POST.get(\'now_password\')
    confirm_password = request.POST.get(\'confirm_password\')
    # 判断旧密码是否正确
    res = request.user.check_password(old_password)
    if res:
        # 判断新密码两次验证是否正确
        if new_password == confirm_password:
            # 修改密码
            request.user.set_password(new_password)
            # 保存
            request.user.save()
            return redirect(\'/login/\')
    return render(request, \'set_password.html\')

 

分类:

技术点:

相关文章: