Поле Unicode
Тип Unicode задает строковое поле базы данных
с поддержкой символов Unicode. Он похож на тип
String,
но при работе с диалектами СУБД, которые различают
байтовые и Unicode-строки, генерирует именно
Unicode-вариант типа. Первым параметром передается
максимальная длина строки в символах. Параметр
length можно не указывать, тогда длина не
ограничивается. Также доступны параметры
collation для указания правила сравнения
строк и convert_unicode для управления
преобразованием.
Синтаксис
Unicode(length, [collation])
Пример
Давайте создадим колонку с типом Unicode
и посмотрим, как она выглядит:
from sqlalchemy import Unicode
title_type = Unicode(100)
print(title_type)
Результат выполнения кода:
"Unicode(length=100)"
Пример
Давайте используем тип Unicode в модели
таблицы articles:
from sqlalchemy import Unicode
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str] = mapped_column(Unicode(100))
text: Mapped[str] = mapped_column(Unicode(1000))
Пример
Давайте создадим таблицу и вставим в нее строку с Unicode-символами:
from sqlalchemy import Unicode, create_engine, select
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str] = mapped_column(Unicode(100))
text: Mapped[str] = mapped_column(Unicode(1000))
engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
with Session(engine) as session:
article = Article(title='article', text='пример текста')
session.add(article)
session.commit()
res = session.scalars(select(Article)).all()
for row in res:
print(row.title, row.text)
Результат выполнения кода:
"article пример текста"
Смотрите также
-
тип
String,
который задает обычную строку -
тип
UnicodeText,
который задает Unicode-текст без ограничения длины -
тип
Text,
который задает текстовое поле -
тип
VARCHAR,
который задает строку переменной длины