Область применения
Существует 12 основных типов полей модели, а также специальные поля ForeignKey и ManyToMany для установления связей между моделями.
!!!tip Инструкции по проверке связей между ForeignKey и ManyToMany.
Каждому поле присваивается класс столбца sqlchemy и тип Python, используемый для создания pydantic модели.
Тип поля
Пряжка
String(max_length: int, min_length: int = None, regex: str = None,) Существует необходимый параметр max_length.
- Sqlalchemy-String
- Тип (для pydantic): str
!!!tip Для получения дополнительной информации см. документацию pydantic.
Текст
Текст () не имеет обязательных параметров.
- Название: sqlalchemy.Text
- Тип (для pydantic): str
!!!tip Для получения дополнительной информации см. документацию pydantic.
Логическое значение
Boolean() не имеет обязательных параметров.
- Название: sqlalchemy.Boolean
- Тип (для pydantic): bool
Целое число
Integer(minimum: int = None, maximum: int = None, multiple_of: int = None) Необходимых параметров нет.
- Название: sqlalchemy.Integer
- Тип (для pydantic): int
!!!tip Для получения дополнительной информации см. документацию pydantic.
Большое целое число
BigInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) Необходимых параметров нет.
- Название: sqlalchemy.BigInteger
- Тип (для pydantic): int
!!!tip Для получения дополнительной информации см. документацию pydantic.
Малое целое число
SmallInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) Необходимых параметров нет.
- Название: sqlalchemy: SmallInteger
- Тип (для pydantic): int
!!!tip Для получения дополнительной информации см. документацию pydantic.
Плавание
Float(minimum: float = None, maximum: float = None, multiple_of: int = None) Необходимых параметров нет.
- Оригинальное название: sqlalchemy.Float
- Тип (для pydantic): float
!!!tip Для получения дополнительной информации см. документацию pydantic.
Десятичный
Decimal(minimum: float = None, maximum: float = None, multiple_of: int = None, precision: int = None, scale: int = None, max_digits: int = None, decimal_places: int = None) Нет необходимых параметров.
Вы можете использовать параметры длины и точности или max_digits и decimal_places.
- Название: Sqlalchemy: Decimal
- Тип (для pydantic): decimal.Decimal
!!!tip Для получения дополнительной информации см. документацию pydantic.
Даты
Date() не имеет необходимых параметров.
- Название: sqlalchemy.Date
- Тип (для pydantic): datetime.date
Время
Время (timezone: bool = False) не имеет обязательных параметров.
Можно передать timezone=True столбец базы данных с учетом часового пояса.
- Название: sqlalchemy.Time
- Тип (для pydantic): datetime.time
Дата и время
DateTime(timezone: bool = False) Необходимых параметров нет.
Можно передать timezone=True столбец базы данных с учетом часового пояса.
- Название: sqlalchemy.DateTime
- Тип (для pydantic): datetime.datetime
JSON
JSON() не имеет необходимых параметров.
- Серия Sqlalchemy: sqlchemy. JSON
- Тип (для pydantic): pydantic. Json
Большие двоичные файлы
LargeBinary(max_length) имеет требуемый параметр max_length.
- Оригинальное название: Sqlalchemy: Large Binary
- Тип (для pydantic): байты
Длина LargeBinary используется для определения размера поля в некоторых бэк-файлах (mysql), в других он просто игнорируется, но в ormar всегда требуется. Это должен быть максимальный размер файла/байта (в байтах)
LargeBinary также имеет опциональный флаг represent_as_base64_str: bool = False. При выборе значения Trueormar байтовые значения автоматически преобразуются в строки, декодированные Base64. Вы также можете задать значения, передавая строки, кодированные Base64.
Таким образом, вы можете установить значения через API, даже если значение несовместимо с utf-8, иначе преобразование Json будет прервано.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
Универсальный уникальный идентификатор
UUID(uuid_format: str = 'hex') Необходимых параметров нет.
Столбец* Sqlalchemy: ormar.UUID на основе поля sqlalchemy.CHAR (36) или sqlalchemy.CHAR (32)(для строки или шестнадцатеричного формата соответственно) * Тип (для pydantic): uuid.UID
Параметр uuuid_format допускает значения «Шестнадцатеричных»(по умолчанию) или «Строки».
В зависимости от формата в базе данных используется 32 или 36 символов.
Образцы:
Значение формата* «шестнадцатеричные»=c616ab438cce49dbbf4380d109251dce(символ (32))
* «Строки»=c616ab43-8cce-49db-bf43-80d109251dce(символ (36))
При загрузке он всегда является UUID Python, поэтому вы можете сравнить его и сравнить значения между значениями двух форматов.
Перечисление
Существует два способа использования перечисления в ormar ->: один из них состоит в том, чтобы использовать специальные поля перечисления типа столбца sqlchemy.Enum, а другой-в том, чтобы задать выбор в любом поле ormar.
В поле Enum используется тип столбца Enum (если он доступен), относящийся к диалекту базы данных, но, если этот тип поля недоступен, он возвращается к varchar.
Выбор параметров всегда соответствует выбранному типу поля базы данных.
Таким образом, какой тип используется, зависит от используемого бэкэнда и типа столбцов/данных, которые вы хотите использовать в поле перечисления.
Перечисление-Поля
Enum(enum_class =Type[Enum]) имеет один обязательный параметр enum_class.
- Название: sqlalchemy.Enum
- Тип (для pydantic): Тип[Enum]