我正在建立一个登录表单,但是我陷入了会话困扰。当我尝试登录时,出现错误“该会话不可用,因为未设置任何秘密密钥”。请检查我的代码:
初始化 .py (主文件)
from flask import Flask
...
from flask_session import Session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'gfgfgghghgfhgfhgfhgfhfgghghghghghg'
Session(app)
routes.py (用户蓝图)
from flask import render_template, session, url_for, redirect, request, Blueprint
...
from mywebsite.users.forms import (LoginForm, RegisterForm)
from mywebsite import db, bcrypt, app
users = Blueprint('users', "__name__")
@users.route('/login', methods=['GET', 'POST'])
def login():
loginForm = LoginForm()
if request.method == 'POST':
session.pop('user_id', None)
也许我应该将密钥传递给用户蓝图?如果是这样,我该怎么办?
P.S。当我摆脱 flask_session 时,效果很好
答案 0 :(得分:2)
# app.config["SECRET_KEY"] = "..." # wrong
app.secret_key = "My Secret key" # right
Flask Documentation for Session
SO Question: Demystify Flask app secret key
编辑:我刚刚注意到您正在使用Flask-Session
。
请注意,flask本身具有会话,如果只需要任何会话,则不一定需要此扩展名。
请参见Flask-Session is an extension for Flask that adds support for Server-side Session to your application.和说明Flask-Session extension vs default session。
无论如何要使Flask-Session
运行,都需要为其进行SESSION_TYPE
配置(请参见secret key not set in flask session, using the Flask-Session extension)。
app.config['SESSION_TYPE'] = 'filesystem'