Flask实现session的思路
-
客户端携带用户信息请求服务端验证。
-
服务端收到用户信息验证成功后,服务端再把用户信息经过严格的加密加盐生成session信息。并且把刚刚生成的session信息作为cookie的内容返回给客户端。
-
客户端收到以session信息为内容的cookie保存到本地。
-
客户端再次请求的时候会携带以session信息为内容的cookie去访问服务端,服务端取出session信息经过解密得到用户的信息
Flask实现cookie与session
from flask import Flask app = Flask(__name__)
cookies
from flask import Flask, make_response, request @app.route('/') def index(): response = make_response('ok') #先要创建一个response对象 response.set_cookie('key','value') #用set_cookie设置cookies cookies = request.cookies #获取所有cookies且以字典的形式的返回 cookies_key = request.cookies['key'] #因为返回是cookies的字典对象所以我们可以用字典取值取出指定的cookie return response
session
# 要用session,必须app配置一个密钥 app.secret_key = "adas" app.config['SESSION_COOKIE_NAME']="session_key" #这是配置网页中sessions显示的key @app.route("/",) def index(): #如何设置sessoion # 1 导入session # 2 给sessoion设置值 #session本身就是个字典相当于把一个username:xxx键值对丢进去,然后Flask会把整个字典结合secret_key进行加密 #1.生成一个随机的字符串 #2 往数据库存 #3 写入cookie返回浏览器 session['name'] = "xxx" return "ok" @app.route("/login") def login(): # sessions = session #获取所有session session_name = session["name"]#获取指定session # session.pop('name') #删除session原理和字典的删除方式一样 return "login" if __name__ == '__main__': app.run()