changed how the app gets its config values

This commit is contained in:
eclipse 2025-07-16 17:21:14 +02:00
parent a767efb904
commit 6f3e53273d
2 changed files with 27 additions and 16 deletions

13
.flaskenv Normal file
View File

@ -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

View File

@ -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)