5.3 Введение в модели SQLAlchemy
4 из 4 шагов пройдено

Определение столбцов

Для определения столбца для класса Column и mapped_column можно установить ряд параметров. Отметим основные:

  • name: имя столбца. Названия в нижнем регистре считаются регистронезависимыми. Если параметр опущен, то по умолчанию используются названия атрибутов. Это первый позиционный аргумент.

  • type_: тип данных столбца, который задается в виде объекта подкласса TypeEngine. Это второй позиционный аргумент

  • autoincrement: задает автоинкремент значения столбца. Может иметь значения True, False, auto. Значение auto - значение по умолчанию, которое говорит, что стобец первичного ключа с типом INTEGER будет автоматически увеличивать свое значение при добавлении нового объекта в таблицу. Данный параметр применяется только для столбцов с типами INT, SMALLINT, BIGINT.

  • default: устанавливает значение по умолчанию

  • index: если равен True, то для столбца будет создаваться индекс

  • nullable: если равен False, то к определению столбца в бд будет добавляться ограничение NOT NULL. Для всех столбцов, кроме столбца первичного ключа, значение по умолчанию - True

  • primary_key: если равен True, то столбец будет считаться первичным ключом

  • unique: если равен True, то для столбца будет создаваться ограничение UNIQUE, благодаря чему столбец будет поддерживать только уникальные значения

 

Общие типы задают столбец, который может читать, записывать и хранить определенный тип данных Python. SQLAlchemy при выпуске оператора CREATE TABLE будет выбирать наилучший тип столбца базы данных, доступный в целевой базе данных.

В качестве типов для столбцов можно использовать один из следующих встроенных типов:

  • BigInteger: Тип для больших целых чисел int.

  • Boolean: булевый тип

  • Date: Тип для объектов datetime.date().

  • DateTime: Тип для объектов datetime.datetime().

  • Enum: тип Enum

  • Float: тип для чисел с плавающей точкой, например, FLOAT и REAL.

  • Integer: целые числа

  • Interval: объект datetime.timedelta()

  • LargeBinary: большие наборы байтов

  • MatchType: соответствует результату оператора MATCH.

  • Numeric: базовый тип для дробных числовых данных, например, NUMERICFLOATDECIMAL.

  • PickleType: для объектов Python, которые сериализованы с помощью модуля pickle.

  • SmallInteger: целые числа

  • String: строки

  • Text: строки произвольной длины.

  • Time: объект datetime.time()

  • Unicode: строка символов Unicode произвольной длины.

  • UnicodeText: строка Unicode неограниченной длины.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Нет обсуждений. Начните первое.