Атрибут app класса Request
Атрибут app доступен у объекта Request
и хранит ссылку на экземпляр приложения FastAPI,
которому принадлежит текущий запрос.
Через этот атрибут можно получить доступ
к состоянию приложения, его настройкам, маршрутам
и другим данным, привязанным к приложению.
Это особенно полезно при работе с несколькими приложениями
или при монтировании подприложений через mount.
Синтаксис
request.app
Пример
Давайте получим приложение через атрибут app
и вернём его название:
from fastapi import FastAPI, Request
app = FastAPI(title='My App')
@app.get('/')
def index(request: Request):
current_app = request.app
return {'title': current_app.title}
Результат выполнения кода:
{"title": "My App"}
Пример
Давайте сохраним произвольное значение в состоянии приложения
и прочитаем его через атрибут app:
from fastapi import FastAPI, Request
app = FastAPI()
app.state.counter = 100
@app.get('/counter')
def counter(request: Request):
return {'counter': request.app.state.counter}
Результат выполнения кода:
{"counter": 100}
Пример
Давайте проверим, что атрибут app возвращает
тот же объект, что и переменная app:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/check')
def check(request: Request):
return {'same': request.app is app}
Результат выполнения кода:
{"same": true}
Смотрите также
-
класс
Request,
который хранит данные входящего запроса -
атрибут
state,
который хранит состояние приложения -
атрибут
url,
который возвращает URL запроса -
атрибут
path_params,
который хранит параметры пути