html用户密码修改界面,16.设计和实现用户中心、修改密码功能

现在我们来设计一个用户中心的页面,显示用户相关的信息,由于我们的Q&A demo比较简单,所以显示的内容也不用太多,我们来显示用户的头像、注册时间、发表的问题数和评论数,设计一个user.html,界面如下:

bV2xb5?w=604&h=176

用户的头像或其他信息都可以通过上下文管理器返回的login_user去获取,发布问答和评论数直接在模板里使用length过滤器,之前的文章都有类似的部分。这个页面通过点击导航条的用户进去,对应的url是'/user/',视图函数为user_center,直接render即可。

再增加一个修改密码的页面security.html,界面和注册的页面是一致的,因此直接对register.html做一些简单修改即可,如下:

bV2xiK?w=600&h=291

修改密码页面对应的url是'/user/security/',视图函数为security,设计好页面后先直接render即可,以便看看效果。通过点击user页面的修改密码进入,因此对user页面的修改密码这个button增加onclick属性如下:

修改密码

此时页面已经可以发送POST数据了,再为视图函数添加POST方法,最终security视图函数如下:

def security():

if request.method == 'GET':

return render_template('security.html')

else:

o_password = request.form.get('o_password')

password1 = request.form.get('password1')

password2 = request.form.get('password2')

validate_func(o_password, password1, password2)

g.user.password = generate_password_hash(password1)

db.session.commit()

return redirect(url_for('logout'))

获取到旧的密码以及两次新的密码之后,对其进行验证,例如旧密码是否正确,新密码长度是否足够、两次是否一样等,我这里用validate_func做的验证(实际还没写这个函数),验证成功之后直接用g.user.password = generate_password_hash(password1)修改密码,并用db.session.commit()提交到数据库,之后对当前用户进行注销,用户使用新密码即可登录,这一部分就完成了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的密码修改界面HTML+CSS+JS实现代码,你可以根据自己的需要进行修改和补充: HTML代码: ```html <div class="form"> <h2>修改密码</h2> <form> <div class="form-group"> <label for="old-password">旧密码</label> <input type="password" id="old-password" name="old-password" required> </div> <div class="form-group"> <label for="new-password">新密码</label> <input type="password" id="new-password" name="new-password" required> </div> <div class="form-group"> <label for="confirm-password">确认密码</label> <input type="password" id="confirm-password" name="confirm-password" required> </div> <button type="submit" id="submit-btn">确认修改</button> </form> </div> ``` CSS代码: ```css .form { max-width: 500px; margin: 0 auto; padding: 20px; border: 1px solid #ccc; border-radius: 5px; background-color: #f5f5f5; } .form h2 { text-align: center; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 5px; } .form-group input[type="password"] { width: 100%; padding: 10px; font-size: 16px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box; } #submit-btn { display: block; margin: 0 auto; padding: 10px 20px; font-size: 16px; border: none; border-radius: 5px; background-color: #4CAF50; color: #fff; cursor: pointer; } #submit-btn:hover { background-color: #3e8e41; } ``` JS代码: ```js const form = document.querySelector('form'); const oldPassword = document.querySelector('#old-password'); const newPassword = document.querySelector('#new-password'); const confirmPassword = document.querySelector('#confirm-password'); form.addEventListener('submit', function(event) { event.preventDefault(); if (newPassword.value !== confirmPassword.value) { alert('两次输入的密码不一致,请重新输入!'); return; } // TODO: 发送修改密码请求 }); ``` 这里的JS代码只是简单地验证了新密码和确认密码是否一致,如果需要向服务器发送修改密码请求,还需要补充相应的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值