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

Параметр max_length

Параметр max_length применяется в функциях Path, Query, Header, Cookie, Body, Form и File, а также в полях моделей Pydantic. Он ограничивает максимальное количество символов в строковом значении. Если клиент передаст строку длиннее указанного значения, FastAPI вернёт ошибку валидации 422. Первым параметром передаётся целое число - максимальная длина строки.

Синтаксис

max_length=value

Пример

Давайте ограничим длину query-параметра name пятью символами:

from fastapi import FastAPI, Query app = FastAPI() @app.get('/user') def user(name: str = Query(max_length=5)): return {'name': name}

Результат выполнения кода для адреса /user?name=abcde:

{"name": "abcde"}

Результат выполнения кода для адреса /user?name=abcdef:

{"detail": [{"type": "string_too_long", "loc": ["query", "name"], "msg": "String should have at most 5 characters", "input": "abcdef", "ctx": {"max_length": 5}}]}

Пример

Давайте ограничим длину path-параметра slug десятью символами:

<+python+> from fastapi import FastAPI, Path app = FastAPI() @app.get('/article/{slug}') def article(slug: str = Path(max_length=10)): return {'slug': slug} <-python+>

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

{"slug": "article"}

Пример

Давайте ограничим длину поля модели Pydantic:

from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class User(BaseModel): name: str = Field(max_length=5) @app.post('/user') def create_user(user: User): return {'name': user.name}

Результат выполнения кода при передаче тела {"name": "abcde"}:

{"name": "abcde"}

Результат выполнения кода при передаче тела {"name": "abcdef"}:

{"detail": [{"type": "string_too_long", "loc": ["body", "name"], "msg": "String should have at most 5 characters", "input": "abcdef", "ctx": {"max_length": 5}}]}

Пример

Давайте ограничим длину заголовка token двадцатью символами:

from fastapi import FastAPI, Header app = FastAPI() @app.get('/auth') def auth(token: str = Header(max_length=20)): return {'token': token}

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

{"token": "abcde"}

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

  • параметр min_length,
    который задаёт минимальную длину строки
  • параметр pattern,
    который задаёт регулярное выражение для строки
  • параметр title,
    который задаёт заголовок параметра
  • параметр description,
    который задаёт описание параметра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить