摘要:再增加一个修改密码的页面,界面和注册的页面是一致的,因此直接对做一些简单修改即可,如下修改密码页面对应的是,视图函数为,设计好页面后先直接即可,以便看看效果。
现在我们来设计一个用户中心的页面,显示用户相关的信息,由于我们的Q&A demo比较简单,所以显示的内容也不用太多,我们来显示用户的头像、注册时间、发表的问题数和评论数,设计一个user.html,界面如下:
用户的头像或其他信息都可以通过上下文管理器返回的login_user去获取,发布问答和评论数直接在模板里使用length过滤器,之前的文章都有类似的部分。这个页面通过点击导航条的用户进去,对应的url是"/user/",视图函数为user_center,直接render即可。
再增加一个修改密码的页面security.html,界面和注册的页面是一致的,因此直接对register.html做一些简单修改即可,如下:
修改密码页面对应的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()提交到数据库,之后对当前用户进行注销,用户使用新密码即可登录,这一部分就完成了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41299.html
摘要:微服务架构说明简介微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。 微服务架构说明.md 简介 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成...
摘要:微服务架构说明简介微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。 微服务架构说明.md 简介 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成...
阅读 2805·2021-10-27 14:19
阅读 509·2021-10-18 13:29
阅读 1101·2021-07-29 13:56
阅读 3520·2019-08-30 13:19
阅读 1893·2019-08-29 12:50
阅读 984·2019-08-23 18:16
阅读 3473·2019-08-22 15:37
阅读 1869·2019-08-22 15:37