Решение, которое я использую, заключается в установке переменной os.environ['FLASK_ENV']
в моем коде.
from flask import Flask
# creates the application
def create_app():
app = Flask(__name__)
app.config.from_object('instance.config.DevelopmentConfig')
# home
@app.route('/')
def home():
return str(app.config['DEBUG']) # displays 'False'
# return str(app.config['SECRET_KEY']) -- displays 'dev'
return app
мой instance/config.py
файл
import os
class DevelopmentConfig(object):
ENV = 'development'
DEBUG = True
SECRET_KEY = 'dev'
# file: commands.py
import os
import click
from click import pass_context
from flask.cli import with_appcontext, run_command
from flask import current_app
@click.command('serve', context_settings={"ignore_unknown_options": True})
@with_appcontext
@click.argument('args', nargs=-1)
def serve(args):
"""Alias for 'flask run'."""
os.environ['FLASK_ENV'] = current_app.config['ENV']
ctx = run_command.make_context('serve', list(args))
run_command.invoke(ctx)
# file: wsgi.py
# +++++++++++ FLASK +++++++++++
# This file lets you run 'flask' commands (e.g. flask routes)
# noinspection PyUnresolvedReferences
from app import app as application # noqa
Теперь flask serve
ведет себя так, как я ожидал flask run
, чтобы работать.Я считаю это ошибкой колбы.