Атрибут session
Атрибут session применяется к объекту
Request и представляет собой словарь,
в котором можно хранить произвольные данные,
связанные с текущим запросом. Он доступен
только на время обработки одного запроса
и не сохраняется между разными запросами.
Атрибут удобен для передачи промежуточных
значений между зависимостями и обработчиком
маршрута.
Синтаксис
request.session
Пример
Давайте запишем значение в session
внутри зависимости и прочитаем его в
обработчике маршрута:
from fastapi import FastAPI, Request, Depends
app = FastAPI()
def set_data(request: Request):
request.session['user'] = 'abcde'
@app.get('/')
def index(request: Request, dep=Depends(set_data)):
return {'user': request.session.get('user')}
Результат выполнения кода:
{"user": "abcde"}
Пример
Давайте сохраним в session несколько
значений и вернём их в ответе:
from fastapi import FastAPI, Request
app = FastAPI()
@app.get('/user/{name}')
def user(name: str, request: Request):
request.session['name'] = name
request.session['greeting'] = 'hello'
return {
'name': request.session['name'],
'greeting': request.session['greeting']
}
Результат выполнения кода для адреса /user/abcde:
{"name": "abcde", "greeting": "hello"}