Импорт приложения Flask при использовании фабрики приложений и скрипта Flask

Это контекст приложения Flask

app = Flask(__name__)

with app.app_context():
    # insert code here

Большинство случаев использования контекста приложения включают инициализацию "приложения" в том же скрипте или импорт приложения из базы.

Моя заявка имеет следующую структуру:

# application/__init__.py
def create_app(config):
    app = Flask(__name__)
    return app

# manage.py
from application import create_app
from flask_script import Manager

manager = Manager(create_app)
manager.add_command("debug", Server(host='0.0.0.0', port=7777))

Это может быть действительно тривиальной проблемой, но как мне вызвать 'with app.app_context()', если мое приложение структурировано так?

1 ответ

Решение

Flask-Script вызывает все внутри тестового контекста, поэтому вы можете использовать current_app и другие идиомы:

Менеджер запускает команду в тестовом контексте Flask. Это означает, что вы можете получить доступ к локальным прокси-запросам, где это необходимо, например, current_app, который может использоваться расширениями.

http://flask-script.readthedocs.org/en/latest/

Поэтому вам не нужно использовать app.app_context() со сценариями Manager. Если вы пытаетесь сделать что-то еще, вам сначала нужно создать приложение:

from application import create_app

app = create_app()

with app.app_context():
    # stuff here
Другие вопросы по тегам