From 6f3e53273d70db55a78c778d84babe644ec47cb1 Mon Sep 17 00:00:00 2001 From: eclipse Date: Wed, 16 Jul 2025 17:21:14 +0200 Subject: [PATCH] changed how the app gets its config values --- .flaskenv | 13 +++++++++++++ the_works/__init__.py | 30 ++++++++++++++---------------- 2 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 .flaskenv diff --git a/.flaskenv b/.flaskenv new file mode 100644 index 0000000..2081c72 --- /dev/null +++ b/.flaskenv @@ -0,0 +1,13 @@ +# Non-critical configuration values +# Read automatically if python-dotenv is installed +FLASK_APP = "the_works" +FLASK_ENV = "development" +FLASK_SECRET_KEY = "f8148ee5d95b0a67122b1cab9993f637a6bf29528f584a9f1575af1a55566748" +FLASK_TESTING = False +FLASK_MAX_CONTENT_LENGTH = 1024 * 1024 +FLASK_DEBUG = True + +FLASK_SQLALCHEMY_DATABASE_URI = "sqlite:///../the_works.sqlite" +FLASK_SQLALCHEMY_ECHO = False +FLASK_SQLALCHEMY_RECORD_QUERIES = True + diff --git a/the_works/__init__.py b/the_works/__init__.py index 1916033..100651f 100644 --- a/the_works/__init__.py +++ b/the_works/__init__.py @@ -4,16 +4,23 @@ from flask import Flask from the_works.database import init_db from flask_debugtoolbar import DebugToolbarExtension -def create_app(): +def create_app(config=None): app = Flask(__name__) - # read config values - load_dotenv() + # read all config values from environment that are prefixed with "FLASK_" app.config.from_prefixed_env() - if os.getenv("SQLALCHEMY_DATABASE_DIALECT") == "sqlite": - app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///" + os.path.abspath(app.root_path + "/..") + "/" + os.getenv("SQLALCHEMY_DATABASE_SQLITE_FILENAME") - else: - exit("no SQLite database URI given; exiting") + + # some #DEBUG configuration +# toolbar = DebugToolbarExtension(app) #DEBUG + app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False #DEBUG + + # use config from function parameter if present + if config is not None: + app.config.from_object(config) + + # some #DEBUG output + print(f"Current Environment: {app.config['ENV']}") #DEBUG + print(app.config) #DEBUG # initialize database init_db(app) @@ -34,15 +41,6 @@ def create_app(): app.register_blueprint(veroeffentlichung.bp) app.register_blueprint(titelbild.bp) - app.config["MAX_CONTENT_LENGTH"] = 2 * 1024 * 1024 - - ### DEBUG -# toolbar = DebugToolbarExtension(app) - app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False - app.config["SQLALCHEMY_ECHO"] = True - app.config['SQLALCHEMY_RECORD_QUERIES'] = os.getenv("SQLALCHEMY_RECORD_QUERIES") - print(f"Current Environment: " + app.config['ENVIRONMENT']) - # register helper function app.jinja_env.globals.update(sizeof_fmt=sizeof_fmt)