使用flask+html实现网站的登录注册注销功能
2018-01-29 21:29
1081 查看
实现登录功能
写一个装饰器来实现登录限制
用一个上下文管理器来将用户登录的信息传给html
@app.context_processor
def my_context_processor():
user_id = session.get('user_id')
if user_id:
user = User.query.filter(User.id == user_id).first()
if user:
return {'user':user}
return {}
再将html部分修改如下:
上面我们将注销关联到了一个logout函数上:@app.route('/logout/')
def logout():
# session.pop('user_id')
# del session['user_id']
session.clear()
return redirect(url_for('login'))用户名那里下次可以写一个个人资料页面,这里先用#代替。
@app.route('/login/',methods=['GET','POST']) def login(): if request.method =='GET': return render_template('login.html') else: callnumber = request.form.get('callnumber') password = request.form.get('password') username = request.form.get('callnumber') telephone = User.query.filter(User.callnumber == callnumber,User.password == password).first() user_name = User.query.filter(User.username == username,User.password == password).first() if telephone: session['user_id'] = telephone.id session.permanent = True #31天内都不需要登录 return redirect(url_for('index')) elif user_name: session['user_id'] = user_name.id session.permanent = True return redirect(url_for('index')) else: return '手机号码或者密码错误,请重新输入' 实现注册功能
@app.route('/regist/',methods=['GET','POST']) def regist(): ...省略 #验证手机号码是否注册过 user = User.query.filter(User.callnumber == callnumber).first() if user: return '该手机号码已经被注册,请更换手机号码' else: if password1 != password2: return '两次密码不相等,请核对后再输入' else: ...省略
写一个装饰器来实现登录限制
from functools import wraps from flask import session,redirect,url_for def login_required(func): @wraps(func) def wrapper(*args,**kwargs): if session.get('user_id'): return func(*args,**kwargs) else: return redirect(url_for('login')) return wrapper
用一个上下文管理器来将用户登录的信息传给html
@app.context_processor
def my_context_processor():
user_id = session.get('user_id')
if user_id:
user = User.query.filter(User.id == user_id).first()
if user:
return {'user':user}
return {}
再将html部分修改如下:
{% if user %} <li><a href="#">用户:{{ user.username }}</a></li> <li><a href="{{ url_for('logout') }}">注销</a></li> {% else %} <li><a href="{{ url_for('login') }}">登录</a></li> <li><a href="{{ url_for('regist') }}">注册</a></li> {% endif %}这样登录后导航条就会从登录注册变为用户名和注销。
上面我们将注销关联到了一个logout函数上:@app.route('/logout/')
def logout():
# session.pop('user_id')
# del session['user_id']
session.clear()
return redirect(url_for('login'))用户名那里下次可以写一个个人资料页面,这里先用#代替。
相关文章推荐
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能
- 网站注册登录注销功能实现
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用【6】
- java web网站中使用shiro实现前后台登录功能
- 使用PHP实现用户登录和注册的功能
- 使用thinkphp框架实现登录注册功能
- week10-实现网站的登录、注册功能
- android studio使用Bmob来实现登录注册的功能
- struts2+hibernate4.1+spring4.1+ajax+HTML+css暂时实现登录注册功能
- 使用OrmLite数据库实现本地的账号登录,注册功能
- 使用node.js实现简单注册登录功能
- 使用PHP实现用户登录和注册的功能(未封装)
- 使用Tomcat j_security_check实现用户登录、注销功能
- Android实践——使用Bmob实现登录、注册等功能
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- Bmob后端云的使用(1)——入门指导及实现登录注册功能
- flask-web开发中登录和注册功能的实现
- 使用qq邮箱SMTP服务器来为你的网站实现用户注册的邮件回复功能
- 智能厨房重构-使用Bmob后端云实现用户注册登录的功能。
- Flask -- 使用数据库(Sqlite3)、用户注册、登录注销、修改密码