SQLAlchemy: различия между версиями
Содержимое удалено Содержимое добавлено
Vladis13 (обсуждение | вклад) викификация |
Vladis13 (обсуждение | вклад) →Декларативное создание таблицы, класса и отображения за один раз: символьные отступы мешают копированию |
||
Строка 88:
===== Декларативное создание таблицы, класса и отображения за один раз =====
Предыдущее приближение к конфигурированию, включающее таблицу ''Table'', пользовательский класс и вызов ''mapper()'' иллюстрируют классический пример использования SQLAlchemy, в которой очень ценится разделение задач. Большое число приложений, однако, не требуют такого разделения, и для них SQLAlchemy предоставляет альтернативный, более лаконичный стиль: декларативный.
<source lang=python>
from sqlalchemy.ext.declarative import declarative_base </source>
Выше — функция ''declarative_base()'', что определяет новый класс, который мы назвали ''Base'', от которого будет унаследованы все наши ORM-классы. Обратите внимание: мы определили объекты Column безо всякой строки имени, так как она будет выведена из имени своего атрибута.
Низлежащий объект ''Table'', что создан нашей ''declarative_base()'' версией ''User'', доступен через атрибут ''__table__''
<source lang=python>
Имющиеся метаданные MetaData также доступны:
<source lang=python>
Еще один «декларативный» метод для SQLAlchemy доступен в сторонней библиотеке ''Elixir''. Это полнофункциональный продукт, который включает много встроенных конфигураций высокоуровневого отображения. Как и деклaративы, как только классы и отображения определены, использование ORM будет таким же, как и в классическом SQLAlchemy.
|