博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
16.设计和实现用户中心、修改密码功能
阅读量:5914 次
发布时间:2019-06-19

本文共 1143 字,大约阅读时间需要 3 分钟。

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

clipboard.png

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

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

clipboard.png

修改密码页面对应的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()提交到数据库,之后对当前用户进行注销,用户使用新密码即可登录,这一部分就完成了。

转载地址:http://oiwvx.baihongyu.com/

你可能感兴趣的文章
JVM初识-java类加载器
查看>>
对比各类分布式锁缺陷,抓住Redis分布式锁实现命门
查看>>
设置typeid后织梦currentstyle 不起作用的修复方法
查看>>
AndroidManifest.xml解析
查看>>
linux下磁盘分区详解
查看>>
利用iptables屏蔽IP段
查看>>
Oracle动态采样详解
查看>>
APUE读书笔记-03文件输入输出(4)
查看>>
linux系统中top命令输出详解
查看>>
cURL: Learning..
查看>>
540. Single Element in a Sorted Array(有序数组的 Single Element)(leetcode)
查看>>
Codeforces Round #219 (Div. 1) A. Counting Kangaroos is Fun 【二分】
查看>>
Html基础
查看>>
wiki----为用户设置管理员权限
查看>>
Codeforces Round #565 (Div. 3) A. Divide it!
查看>>
《图像处理实例》 之 局部极值提取
查看>>
java 常见几种发送http请求案例[转]
查看>>
更改Visual Studio 2010/2012/2008的主题设置
查看>>
win7系统安装hadoop
查看>>
day5作业购物商城+ATM
查看>>