老雷flask教程之session会话
Session(会话)数据存储在服务器上
为每个客户端的会话分配会话ID。会话数据存储在cookie的顶部,服务器以加密方式对其进行签名。
对于此加密,Flask应用程序需要一个定义的SECRET_KEY
一、设置
设置加密key
app.config["SECRET_KEY"] = "asdasdwqweqweqweqwe"
设置过期时间
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=2)
二、使用
设置
session["k"]="val"
删除
session.pop("k")
获取
session.get('k')
三、用户注册登录实现
from flask import Flask,session,request,render_template,Blueprint import hashlib import model import json user=Blueprint('user',__name__) db = model.init() @user.route("/user/index") def index(): return render_template("user/index.html") @user.route("/user/logout") def logout(): session.pop("ssuser") return render_template("user/index.html") @user.route("/user/login") def login(): return render_template("user/login.html") @user.route("/user/loginsave",methods=["POST"]) def loginsave(): username=request.form.get("username") password=request.form.get("password") sql="select * from sky_user where username=%s " row=db.getRow(sql,(username)) if not row: msg="用户名不存在" return render_template("user/msg.html",msg=msg) password=hashlib.md5(password.encode(encoding='UTF-8')).hexdigest() if row["password"]!=password: msg="密码不正确" return render_template("user/msg.html",msg=msg) session['ssuser']={ "userid":row["userid"], "nickname":row["nickname"] } msg="登录成功" return render_template("user/msg.html",msg=msg,ssuser=session['ssuser']) @user.route("/user/register") def register(): return render_template("user/register.html") @user.route("/user/regsave",methods=["POST"]) def regsave(): username=request.form.get("username") nickname=request.form.get("nickname") password=request.form.get("password") password2=request.form.get("password2") if username=='' or nickname=='': msg="用户名不能为空" return render_template("user/msg.html",msg=msg) sql="select * from sky_user where username=%s or nickname=%s " row=db.getRow(sql,(username,nickname)) if row: msg="用户名或者昵称已经存在" return render_template("user/msg.html",msg=msg) sql="insert into sky_user set username=%s,nickname=%s,password=%s" password=hashlib.md5(password.encode(encoding='UTF-8')).hexdigest() db.insert(sql,(username,nickname,password)) msg="注册成功" return render_template("user/msg.html",msg=msg)