python - session 不可用,因为未设置 key 。将应用程序上的 secret_key 设置为唯一且 secret 的内容。 flask /英雄

标签 python heroku authentication flask secret-key

flask 应用程序可以在本地主机上正常登录和注册。但是当我把它推到 heroku 时,这就成了一个问题。它显示了上述错误。这是 app.py 代码

from flask import Flask, render_template, request, redirect, jsonify, url_for, flash
from sqlalchemy import create_engine, asc, desc
from sqlalchemy.orm import sessionmaker
from database_setup import Base, User, BlogPost
from flask import session as login_session
import random
import string
from wtforms import Form, BooleanField, TextField, PasswordField, validators
from passlib.hash import sha256_crypt


app = Flask(__name__)


#Connecting to database
engine = create_engine('sqlite:///travellerdata.db')
Base.metadata.bind = engine

DBSession = sessionmaker(bind=engine)
session = DBSession()

结束于...

if __name__ == "__main__":
    app.secret_key = 'some secret key'
    app.debug = True
    app.run()

最佳答案

我在使用 flask-login 生成 session ID 时遇到了同样的问题,当我直接运行它时它工作正常但当我使用 HTTP 服务器时会输出错误。原始代码如下:

if __name__ == "__main__":
    app.secret_key = os.urandom(24)
    app.run()

然后我将 app.secret_key = os.urandom(24) 移出 __name__ 并将其放在 app = Flask(__name__) 下像这样:

app = Flask(__name__)
app.secret_key = os.urandom(24)

login_manager = flask_login.LoginManager()
login_manager.init_app(app)

现在它工作正常。

关于python - session 不可用,因为未设置 key 。将应用程序上的 secret_key 设置为唯一且 secret 的内容。 flask /英雄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35657821/

相关文章:

ruby-on-rails - 在本地使用 sqlite3 在 Heroku 上设置 Rails 3.2.2 应用程序

Heroku go-getting-started 不在本地运行

ruby-on-rails - Heroku SSL 有时有效,有时无效

linux - 如何在slitaz中为root用户设置空白密码

php - 如何根据 PHP 中的 session 数据将用户重定向到不同的目录?

authentication - 传递给 Illuminate\Auth\Guard::login() 的参数 1 必须实现接口(interface) Illuminate\Auth\UserInterface,null 给定打开:

python - 减去 TimeDate 列

python - HDF5 : storing NumPy data

python - 定义基于 gensim word2vec 的自定义 sklearn 转换器的问题

python - 使用 WTForms 和 Flask 预填充编辑表单