2017-04-19 238 views
0
当设置

我的Heroku应用程序不会让我瓶RuntimeError:会话是不可用,因为没有密钥,用瓶会话

RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret. 

然而,因为这个错误的登记,我设置的会话密钥相当精细,

run.py

from app import app, db, manager, sess 
import os 

app.config['SESSION_TYPE'] = 'filesystem' 
app.config['SECRET_KEY'] = 'reds209ndsldssdsljdsldsdsljdsldksdksdsdfsfsfsfis' 
sess.init_app(app) 
app.secret_key() 
if __name__ == "__main__": 
    app.debug = True; 
    app.run() 
    # manager.run() 

__init__.py

from flask import Flask 
from flask_session import Session 

app = Flask(__name__) 
sess = Session() 
sess.init_app(app) 

app.config['SESSION_TYPE'] = 'memcached' 
app.config['SECRET_KEY'] = 'redsfsfsfsfis' 

from app import views, db 

我已经看过secret key not set in flask session但它没有解决我的问题。

+0

也许你已经设置的秘密后,初始化会话扩展键?在这种情况下,这是重复的:答案仍然是在访问会话之前需要设置密钥。我对Flask-Session不熟悉。此外,'secret_key'不可调用,不确定为什么你要在run.py中这样做。 – davidism

+0

你的意思是'app.config ['SECRET_KEY'] ='redsfsfsfsfis''后的'sess.init_app(app)'? – BARNOWL

+0

我正在讨论'__init__'中的版本,这是唯一重要的版本。不要在运行中再次调用init,这没有任何意义。这整个布局是有点关闭,你应该用实例配置来处理配置。初始化后更改配置不会很好。 – davidism

回答

0

由于davidism我想通了,

我只好把

sess.init_app(app)

app.config['SECRET_KEY'] = 'redsfsfsfsfis'