当我尝试使用App Factory设置应用程序时,我无法登录用户。该应用程序从配置文件进行配置,当我在create_app()之前使用打印语句时,它实际上向我显示了密钥。但是,当我运行该应用程序并在登录屏幕中输入用户名时,出现运行时错误:
RuntimeError:该会话不可用,因为未设置任何秘密密钥。将应用程序上的secret_key设置为独特而秘密的内容。
有人能指出我正确的方向吗?我似乎无法解决这个问题。
app / __ init __。py
from flask import Flask
from flask_session import Session
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
db.init_app(app)
app.config.from_object('config.Config')
with app.app_context():
from .auth import auth_routes
app.register_blueprint(auth_routes.auth_routes)
db.create_all()
return app
.env
SESSION_TYPE = filesystem
SECRET_KEY = verysecretkey
config.py
from os import environ
class Config:
SESSION_TYPE = environ.get('SESSION_TYPE')
SECRET_KEY = environ.get('SECRET_KEY')
答案 0 :(得分:0)
将设置从.env
传送到Flask实例有两个要求:首先,需要安装python-dotenv
。其次,您需要使用flask
命令或通过调用app.run()
的某些路径来启动应用。
通过这样做,我发现在我的配置中明确显示更为安全
import os
from dotenv import load_dotenv
load_dotenv()
class Config:
SECRET_KEY = os.environ.get('APP_SECRET_KEY')
...
这可以避免在uwsgi
等人下进行部署时造成混乱。