Flask 会话技术
1、Cookie(存到客户端)
新建login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{{ url_for('second.login') }}" method="post">
<span>用户名</span>
<input type="text" name="username" placeholder="请输入用户名">
<br>
<button>登录</button>
</form>
</body>
</html>
视图
@second.route('/login/', methods=["GET", "POST"])
def login():
if request.method == "GET":
return render_template("login.html")
elif request.method == "POST":
username = request.form.get("username")
return username
运行后访问
1.1、存储Cookie
加入cookie
reponse = Response("%s 登录成功,并用cookie记录了" % username)
reponse.set_cookie('username', username)
访问
1.2、获取Cookie信息
注意:cookie本不支持中文,这里是被flask自动做了转换
2、Session(存到服务器–>客户端)
把登录信息存到session中
session需要配置一个SECTET_KEY
现在setting里面写一个SECTET_KEY,这个SECTET_KEY自定义值就行,越复杂越好
然后在视图里面写
访问
在浏览器页面按F12,查看cookie我们会发现cookie储存了整个session的内容
2.1、Session持久化,将Session存到redis中
先安装flask-session:pip install flask-session
然后在settings中注册:
在ext中注册flask-session插件
启动redis:redis-server.exe redis.windows.conf(注意这里我是windows环境下)
redis未安装的可以参考这里:
https://blog.csdn.net/a__int__/article/details/103648033
先安装redis模块:pip install redis
然后启动redis
启动flask:python manage.py runserver -d -r
先清空浏览器的cookie
访问:
查看cookie
cookie里面记录的这个session值什么意思呢,我们在redis里面查看一下,打开一个新的cmd窗口:
涉及的几个redis指令如下:
redis-cli
keys *
get session:####写里面是复制过来的session码####
redis-session记录有效期大概是31天