-
Flask 中 session 是需要
secret_key
的,secret_key
实际上是用来加密字符串的,如果在实例化的app
中没有secret_key
那么开启session
一定会抛异常
的 -
启动session
from flask import Flask, render_template, request, session, redirect
app = Flask(__name__)
# 设置secret_key
app.secret_key = "123456"
app.debug = True
# app.config["DEBUG"] = True
@app.route('/login', methods=["POST", "GET"])
def login():
if request.method == "GET":
return render_template("login.html")
if request.method == "POST":
username = request.form.get("username")
password = request.form.get("password")
if username == "root" and password == "123456":
# 登录成功设置session
session["username"] = username
return redirect('index')
else:
return "404"
@app.route('/index')
def index():
# 检查是否是登录用户
if session.get("username"):
return "这是index页面"
else:
return redirect('login')
if __name__ == '__main__':
app.run()
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="登录">
</form>
</body>
</html>
- 查看浏览器的
cookie
cookies 中 session 存储的是通过 secret_key加密
后的 key , 在会话中,浏览器会自动提交cookie的值
, 通过这个 key 从flask程序的内存中找到用户对应的session信息
, 所以session必须要求secret_key