Импорт приложения 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