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

Параметр min_length

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

Синтаксис

from fastapi import Query Query(default, min_length=1)

Для моделей Pydantic параметр указывается в функции Field:

from pydantic import BaseModel, Field class Model(BaseModel): name: str = Field(min_length=1)

Пример

Давайте потребуем, чтобы параметр пути содержал минимум 3 символа:

from fastapi import FastAPI, Path app = FastAPI() @app.get('/user/{name}') def user(name: str = Path(min_length=3)): return {'name': name}

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

{"name": "abcde"}

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

{ "detail": [ { "type": "string_too_short", "loc": ["path", "name"], "msg": "String should have at least 3 characters", "input": "ab", "ctx": {"min_length": 3} } ] }

Пример

Давайте применим min_length к query-параметру:

from fastapi import FastAPI, Query app = FastAPI() @app.get('/search') def search(q: str = Query(min_length=5)): return {'q': q}

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

{"q": "article"}

Результат выполнения кода для адреса /search?q=abc:

{ "detail": [ { "type": "string_too_short", "loc": ["query", "q"], "msg": "String should have at least 5 characters", "input": "abc", "ctx": {"min_length": 5} } ] }

Пример

Давайте применим min_length в модели Pydantic для поля тела запроса:

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

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

{"name": "abcde", "login": "article"}

Результат выполнения кода для тела {"name": "ab", "login": "usr"}:

{ "detail": [ { "type": "string_too_short", "loc": ["body", "name"], "msg": "String should have at least 3 characters", "input": "ab", "ctx": {"min_length": 3} }, { "type": "string_too_short", "loc": ["body", "login"], "msg": "String should have at least 5 characters", "input": "usr", "ctx": {"min_length": 5} } ] }

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

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