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/