diff --git a/Makefile b/Makefile index 3a737d14d..1708f7c23 100644 --- a/Makefile +++ b/Makefile @@ -130,6 +130,7 @@ test_examples: cd example/issues/722_docs_example;pwd;python app.py cd example/issues/729_use_default_when_setting_is_blank;pwd;python app.py cd example/issues/741_envvars_ignored;pwd;sh recreate.sh + cd example/issues/705_flask_dynaconf_init;pwd;make test;make clean test_vault: # @cd example/vault;pwd;python write.py diff --git a/dynaconf/cli.py b/dynaconf/cli.py index d8529e124..d6be7db23 100644 --- a/dynaconf/cli.py +++ b/dynaconf/cli.py @@ -52,9 +52,10 @@ def set_settings(ctx, instance=None): elif "FLASK_APP" in os.environ: # pragma: no cover with suppress(ImportError, click.UsageError): from flask.cli import ScriptInfo # noqa + from dynaconf import FlaskDynaconf flask_app = ScriptInfo().load_app() - settings = flask_app.config + settings = FlaskDynaconf(flask_app, **flask_app.config).settings click.echo( click.style( "Flask app detected", fg="white", bg="bright_black" diff --git a/example/issues/705_flask_dynaconf_init/Makefile b/example/issues/705_flask_dynaconf_init/Makefile new file mode 100644 index 000000000..0ce162e2e --- /dev/null +++ b/example/issues/705_flask_dynaconf_init/Makefile @@ -0,0 +1,12 @@ +.PHONY: test clean + +export FLASK_APP=app:create_app + +test: clean + dynaconf init -v test_var + grep '\[development\]' settings.toml + +clean: + rm -rf settings.toml + rm -rf .secrets.toml + rm -rf .gitignore diff --git a/example/issues/705_flask_dynaconf_init/app.py b/example/issues/705_flask_dynaconf_init/app.py new file mode 100644 index 000000000..2ed8f2593 --- /dev/null +++ b/example/issues/705_flask_dynaconf_init/app.py @@ -0,0 +1,18 @@ +from __future__ import annotations + +from flask import Blueprint +from flask import Flask + +blueprint = Blueprint("default", __name__) + + +@blueprint.route("/") +def index(): + return "Default route." + + +def create_app(): + app = Flask(__name__) + app.register_blueprint(blueprint) + app.config["ENV"] = "development" + return app