Функция has_request_context
Функция has_request_context применяется для проверки
наличия активного контекста запроса. Она не принимает
параметров и возвращает True, если контекст запроса
существует, и False в противном случае. Это полезно,
когда нужно выполнить код по-разному в зависимости от того,
обрабатывается ли запрос в данный момент или нет.
Синтаксис
from flask import has_request_context
has_request_context()
Пример
Давайте проверим наличие контекста запроса внутри обработчика маршрута:
from flask import Flask, has_request_context
app = Flask(__name__)
@app.route('/')
def index():
res = has_request_context()
return str(res)
Результат выполнения кода для адреса /:
<+html+>
True
<-html+>
Пример
Давайте проверим наличие контекста запроса вне обработчика маршрута, при запуске модуля напрямую:
from flask import Flask, has_request_context
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
res = has_request_context()
print(res)
Результат выполнения кода:
False
Пример
Давайте используем has_request_context для выбора
логики внутри вспомогательной функции:
from flask import Flask, has_request_context, request
app = Flask(__name__)
def get_path():
if has_request_context():
return request.path
return 'no request'
@app.route('/')
def index():
return get_path()
res = get_path()
print(res)
Результат выполнения кода:
"no request"
Смотрите также
-
функцию
has_app_context,
которая проверяет наличие контекста приложения -
класс
RequestContext,
который представляет контекст запроса -
метод
push,
который активирует контекст запроса -
метод
pop,
который деактивирует контекст запроса