该会话不可用,因为未设置任何秘密密钥

时间:2020-07-31 10:06:18

标签: flask

我正在建立一个登录表单,但是我陷入了会话困扰。当我尝试登录时,出现错误“该会话不可用,因为未设置任何秘密密钥”。请检查我的代码:

初始化 .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 时,效果很好

1 个答案:

答案 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'
相关问题