本来可以提前完成这篇的,结果测试时发现了一些问题,稍后将会提到.
上篇中我们已经完成了登录注册的界面,现在具体完成其具体功能.

1.注册功能

因为注册成功后,才能登录,我们在主py文件中添加如下

@app.route('/register',methods = ['GET','POST'])
def register():if request.method == 'GET':return render_template('register.html')else:#request.form.get()获取用户表单输入,通过nametelephone = request.form.get('telephone')username = request.form.get('username')password1 = request.form.get('password1')password2 = request.form.get('password2')#查询数据库中手机号码是否已经存在user = User.query.filter(User.telephone == telephone).first()if user:return '该手机号已被注册,请更换手机号码'# flash('该手机号已被注册,请更换手机号码')# return render_template('register.html')else:#如果用户两次密码不一致,则进行提醒if password1 != password2:return '两次密码不相等,请核对后再填写'else:#在数据库中添加注册的数据user = User(telephone = telephone,username = username,password = password1)db.session.add(user)db.session.commit()return redirect(url_for('login'))

2.登录功能

同样在主py文件中添加

@app.route('/login',methods = ['GET','POST'])
def login():if request.method == 'GET':return render_template('login.html')else:telephone = request.form.get('telephone')password = request.form.get('password')user = User.query.filter(User.telephone == telephone,User.password == password).first()if user:session['user_id'] = user.id #如果需要31天内不需要登录,则进行如下一行设置session.permanent = Truereturn redirect(url_for('index'))else:return '手机号码或者密码错误,请确认后再登录'

3.注销功能

注销需要实现的是一下两图中的切换

主py文件中添加如下代码

@app.route('/logout')
def logout():#session.pop['user_id'] 或者del session['user_id']# 或者# session.clear()return redirect(url_for('login'))

然后更改base.html,更改后如下,当时出错的原因是<li><a href="{{url_for('logout')}}">注销</a></li> 这句出错了,导向了login函数,应该是logout函数才对,因为logout才把session清除了,也就是说删除了当前用户的登录状态

 <ul class="nav navbar-nav navbar-right">{% if user%}<li><a href="#">{{user.username}}</a></li><!-- 之前这里url_for倒错了位置,原先成了login --><li><a href="{{url_for('logout')}}">注销</a></li>{% else %}<li><a href="{{url_for('login')}}">登录</a></li><li><a href="{{url_for('register')}}">注册</a></li>{% endif %}</ul>

Flask实战2问答平台-完成登录注册功能相关推荐

  1. flask实战之问答平台(参考b站视频)

    准备 新建一个项目,在项目中添加一个config.py文件,用来进行邮箱验证码,cookie,和session和一些加密等的配置 这样看来config.py是项目的一部分了,但是还要在app.py中进 ...

  2. Flask实战2问答平台-父模板抽离(登录注册界面)

    我们写一个基模板,然后让其他的继承. (1)新建基模板base.html 注意5,13,53行的{%%}块 <!DOCTYPE html> <html lang="en&q ...

  3. Flask实战2问答平台-登录限制(装饰器)

    我们来解决上一文章说到的,为登录不能点击发布问答功能 (一)先写一个装饰器 装饰器教程参考廖雪峰教程 http://t.cn/RK0SaGl from functools import wraps # ...

  4. Flask实战2问答平台-发布问答界面完成

    当我们登录进来后,我们便可以发布问答了,注意一点再未登录之前,我们是不能点击发布问答 的,这一点我们在下一篇文章中实现. (1)新建question.html,还是继承base.html {% ext ...

  5. Flask实战2问答平台-发布问答功能完成

    我们需要新建一个表,可以采用两种方式: (1)手动建表 (2)使用flask_migrate. 说一下使用第二种方法建表的方式 (1)在models.py文件中添加如下代码 class Questio ...

  6. Flask实战2问答平台-问答详情完成

    首页文章已经布局完成,这次要完成的功能是点击文章,跳转到文章详情页. 新建detail.html {% extends 'base.html' %} {% block title %}详情{% end ...

  7. Flask实战2问答平台-首页布局,功能完成

    首页需要用来显示文章 index.html如下 {% extends 'base.html' %}{% block title %} 首页 {% endblock %}{% block head %} ...

  8. Flask实战2问答平台--导航条

    项目总览 1.新建index.html 2.引入css,js .链接http://v3.bootcss.com/getting-started/ 3.导入当行条代码,代码链接http://v3.boo ...

  9. 在线问诊、找科室、找医生、查疾病、图文问诊、电话急诊、健康咨询、问诊平台、咨询平台、问诊服务、语音问诊、开药问诊、看病平台、在线医疗、健康平台、登录注册、信息架构图、全局说明、组件规范、需求清单、

    在线问诊.找科室.找医生.查疾病.图文问诊.电话急诊.健康咨询.问诊平台.咨询平台.问诊服务.语音问诊.开药问诊.看病平台.在线医疗.健康平台.登录注册.信息架构图.全局说明.组件规范.需求清单. A ...

最新文章

  1. 【团队】 冲刺一(10/10)
  2. delphi 调用php接口_新浪图床 API 接口调用与请求方法详细教程
  3. 强制生成32位arm程序_ARM版本系列及家族成员梳理
  4. 原生android 全面屏,谷歌全面屏手机曝光!谷歌pixel2,安卓8.0+骁龙836!
  5. Dapr牵手.NET学习笔记:Actor小试
  6. 阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
  7. 百年古董电影秒变4K高清、60FPS,AI插值,还能着色
  8. strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
  9. (转)SDL1.2到2.0的迁移指南
  10. Excel单元格格式选择货币格式US$时变成US$¥
  11. Android地图跑步项目,通过Weex 300行代码开发一款简易的跑步App
  12. Eclipse与JDK多版本兼容性设置
  13. excel怎么设置自动计算_Excel财务表格大全!公式已设置好,数据自动计算产生...
  14. 高防IP防护效果怎么样?甜甜告诉您
  15. mysql定时任务每天凌晨三点钟醒来_常常凌晨三四点醒来是怎么回事?遇到这事要警惕了...
  16. could not open C:/program files/java/jre6/lib/i386/jvm.cfg 问题解决方法
  17. 8.14 早间行情分析和操作建议 昨晚一波多头拉伸后 空头顺势反压
  18. 口腔与呼吸道微生物多样性
  19. C语言 十进制转为字符串 数字转为字符串
  20. W5100常见问题解答汇总(持续更新中)

热门文章

  1. 没有任何基础学编程从哪开始_没有编程基础的朋友,学Python还是C/C++好,看了这个就明白了...
  2. 平安产险_平安产险史良洵:财产险未来三大机遇,新能源车险、非车险以及健康险...
  3. Opencv3.4.1中csSaveImage
  4. 【数学与算法】协方差矩阵 与 w*w^T 的关系
  5. 【自动驾驶】9.分布式通信技术之发布订阅,干货满满
  6. 图解Android Studio 2.0安装步骤
  7. 机器学习——深度学习(Deep Learning)经典资料
  8. Elasticsearch【快速入门】
  9. DDD 领域驱动设计 教程
  10. Java几种常见的编码方式