Python 会话不可用,因为没有在应用程序工厂设置密钥

Python 会话不可用,因为没有在应用程序工厂设置密钥,python,session,flask,secret-key,Python,Session,Flask,Secret Key,当我尝试使用app factory设置应用程序时,登录我的用户时遇到问题。该应用程序通过配置文件进行配置,当我在create_app()之前使用print语句时,它实际上会向我显示密钥。但是,当我运行应用程序并在登录屏幕中输入用户名时,会出现运行时错误: RuntimeError:由于未设置密钥,会话不可用。将应用程序上的密钥设置为唯一和机密的内容 谁能给我指一下正确的方向吗?我似乎无法理解这件事 app/\uuuu init\uuuuu.py from flask import Flask

当我尝试使用app factory设置应用程序时,登录我的用户时遇到问题。该应用程序通过配置文件进行配置,当我在create_app()之前使用print语句时,它实际上会向我显示密钥。但是,当我运行应用程序并在登录屏幕中输入用户名时,会出现运行时错误:

RuntimeError:由于未设置密钥,会话不可用。将应用程序上的密钥设置为唯一和机密的内容

谁能给我指一下正确的方向吗?我似乎无法理解这件事

app/\uuuu init\uuuuu.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
环境署署长

config.py

from os import environ


class Config:

    SESSION_TYPE = environ.get('SESSION_TYPE')
    SECRET_KEY = environ.get('SECRET_KEY')

将设置从
.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
等下部署时的混乱

import os
from dotenv import load_dotenv

load_dotenv()

class Config:
    SECRET_KEY = os.environ.get('APP_SECRET_KEY')
    ...