Переменная current_app
Переменная current_app хранит прокси на текущее
приложение Flask. Она приходит из модуля flask
и позволяет обращаться к атрибутам и методам приложения
без его прямого импорта. Это особенно удобно внутри
фабрик приложений, blueprints и обработчиков запросов,
где объект app недоступен напрямую.
Параметров у переменной нет, она возвращает объект
приложения Flask.
Синтаксис
from flask import current_app
Пример
Давайте получим доступ к конфигурации приложения
через current_app:
from flask import Flask, current_app
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
@app.route('/')
def index():
res = current_app.config['SECRET_KEY']
return res
Результат выполнения кода:
abcde
Пример
Давайте обратимся к имени приложения через
current_app внутри функции-обработчика:
from flask import Flask, current_app
app = Flask(__name__)
@app.route('/')
def index():
res = current_app.name
return res
Результат выполнения кода:
app
Пример
Давайте используем current_app внутри фабрики
приложения, где объект app ещё не доступен
напрямую:
from flask import Flask, current_app
def create_app():
app = Flask(__name__)
app.config['SITE_NAME'] = 'hello'
@app.route('/')
def index():
res = current_app.config['SITE_NAME']
return res
return app
app = create_app()
Результат выполнения кода:
hello
Пример
Давайте откроем контекст приложения вручную и обратимся
к current_app вне обработчика запроса:
from flask import Flask, current_app
app = Flask(__name__)
app.config['DEBUG'] = True
with app.app_context():
res = current_app.config['DEBUG']
print(res)
Результат выполнения кода:
True
Смотрите также
-
класс
Flask,
который создаёт объект приложения -
метод
app_context,
который открывает контекст приложения -
атрибут
config,
который хранит настройки приложения -
атрибут
name,
который хранит имя приложения