РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
104 of 307 menu

Атрибут client

Атрибут client применяется к объекту Request и возвращает объект Address или None. Этот объект содержит атрибуты host и port, которые хранят IP-адрес и порт клиента, отправившего запрос. Атрибут client особенно полезен для логирования, анализа трафика и ограничения доступа по IP-адресу.

Синтаксис

request.client

Пример

Давайте получим IP-адрес и порт клиента из атрибута client:

from fastapi import FastAPI, Request app = FastAPI() @app.get('/') def index(request: Request): client = request.client return { 'host': client.host, 'port': client.port }

Результат выполнения кода:

{"host": "127.0.0.1", "port": 54321}

Пример

Давайте проверим, что атрибут client может быть равен None, если информация о клиенте недоступна:

from fastapi import FastAPI, Request app = FastAPI() @app.get('/check') def check(request: Request): client = request.client if client is None: return {'status': 'unknown'} return {'status': 'known', 'host': client.host}

Результат выполнения кода:

{"status": "known", "host": "127.0.0.1"}

Пример

Давайте ограничим доступ к маршруту только для локального клиента:

from fastapi import FastAPI, Request, HTTPException app = FastAPI() @app.get('/admin') def admin(request: Request): client = request.client if client is None or client.host != '127.0.0.1': raise HTTPException( status_code=403, detail='access denied' ) return {'message': 'welcome'}

Результат выполнения кода для локального клиента:

{"message": "welcome"}

Смотрите также

  • класс Request,
    который представляет HTTP-запрос
  • атрибут url,
    который хранит URL запроса
  • атрибут headers,
    который хранит заголовки запроса
  • атрибут method,
    который хранит HTTP-метод запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить