2017-04-19 41 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'