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

Тип SecretStr

Тип SecretStr применяется в моделях Pydantic для хранения секретных данных: паролей, токенов, ключей. При выводе модели или преобразовании в строку значение маскируется как '**********'. Реальное значение доступно только через метод get_secret_value. Тип импортируется из модуля pydantic.

Синтаксис

from pydantic import SecretStr secret: SecretStr

Пример

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

<+python+> from fastapi import FastAPI from pydantic import BaseModel, SecretStr app = FastAPI() class User(BaseModel): name: str password: SecretStr @app.post('/user') def create_user(user: User): return {'name': user.name, 'password': str(user.password)} <-python+>

Результат выполнения запроса с телом {"name": "user", "password": "abcde"}:

{"name": "user", "password": "**********"}

Пример

Давайте извлечём реальное значение секрета через метод get_secret_value:

<+python+> from fastapi import FastAPI from pydantic import BaseModel, SecretStr app = FastAPI() class User(BaseModel): name: str password: SecretStr @app.post('/user') def create_user(user: User): secret = user.password.get_secret_value() return {'name': user.name, 'length': len(secret)} <-python+>

Результат выполнения запроса с телом {"name": "user", "password": "abcde"}:

{"name": "user", "length": 5}

Пример

Давайте сравним два секретных значения. Сравнение происходит по реальному содержимому:

<+python+> from pydantic import SecretStr a = SecretStr('abcde') b = SecretStr('abcde') c = SecretStr('hello') res = [a == b, a == c, str(a)] <-python+>

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

[True, False, '**********']

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

  • класс BaseModel,
    от которого наследуются модели Pydantic
  • тип EmailStr,
    который валидирует электронную почту
  • тип HttpUrl,
    который валидирует HTTP-адрес
  • функция Field,
    которая задаёт параметры поля модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить