https://coding.imooc.com/learn/list/265.html
课程名称:Python Flask构建微信小程序订餐系统
课程章节:第七章 管理员后台账号模块开发——7-3 登录退出(1)
主讲老师:编程浪子
7-3 登录退出(1)
1.管理登录——是否能正确显示输入的用户名和密码
1.代码
@route_user.route("/login", methods=["GET", "POST"])
def login():
if request.method == "GET":
# render_template()方法——页面渲染 参数—传入指定html文件
return render_template("user/login.html")
# req字典存储request内值
req = request.values
'''
login.html文件
<div class="form-group">
<input type="text" name="login_name" class="form-control" placeholder="请输入登录用户名">
</div>
<div class="form-group">
<input type="password" name="login_pwd" class="form-control" placeholder="请输入登录密码">
</div>
'''
# 如果'login_name'作为key值在req字典内则返回对应的value值
login_name = req['login_name'] if 'login_name' in req else ''
login_pwd = req['login_pwd'] if 'login_pwd' in req else ''
return "%s - %s" % (login_name, login_pwd)
2.登录运行结果展示
2.用户名、密码正确性判断
1.核心代码
# 引入返回jsonify的方法
from flask import jsonify
# 定义json数值用于返回值html页面
resp = {'code': 200, 'msg': '登录成功', 'data': {}}
if login_name is None or len(login_name) < 1:
resp['code'] = -1
resp['msg'] = "请输入正确的登录用户名~~"
return jsonify(resp)
if login_pwd is None or len(login_pwd) < 1:
resp['code'] = -1
resp['msg'] = "请输入正确的登录密码~~"
return jsonify(resp)
2.运行输入空用户名和密码是否会出现提示
1.输入空用户名
2.输出空密码
3.查询数据库验证用户名、密码是否正确
1.往Linux数据库中插入数据
2.验证用户名是否存在
# 验证用户名是否存在——根据用户名查询用户信息
# 查询数据库
user_info = User.query.filter_by(login_name=login_name)
if not user_info:
resp['code'] = -1
resp['msg'] = "请输入正确的用户名或密码~1~"
return jsonify(resp)
结果:
注:此时数据库中没有小明这个用户,但是也能够正常返回小明 - 123456 ,因此可以断定查询出现错误
user_info = User.query.filter_by(login_name=login_name) ---改为---> user_info = User.query.filter_by(login_name=login_name).first()
3.密码加密算法
4.验证用户名、密码是否都正确
用户名正确、密码错误验证结果:
4.重写登录html、js文件
1.login.html文件修改
2.login.js文件
3.前端链接统一管理函数
5.登录cookie验证
1.用户生成指定cookie值
from flask import make_response
import json
response = make_response(json.dumps(resp))
response.set_cookie(app.config['AUTH_COOKIE_NAME'], "%s#%s" % (UserService.geneAuthCode(user_info), user_info.uid))
2.对用户cookie值进行加密
3.运行显示加密cookie值