Back to questions
Junior — Middle
59
Как объяснить концепцию императивного сопоставления объектов с таблицами в SQLAlchemy?
Answer from AI
sobes.tech AI
Императивное сопоставление объектов с таблицами (Imperative Mapping) в SQLAlchemy — это способ явно описать, как классы Python связаны с таблицами базы данных, используя код, а не декларативный стиль.
Вместо объявления классов с помощью декларативного базового класса, вы создаёте таблицы и классы отдельно, а затем связываете их с помощью функции mapper().
Пример:
from sqlalchemy import Table, Column, Integer, String, MetaData
from sqlalchemy.orm import mapper
metadata = MetaData()
user_table = Table('user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String))
class User:
def __init__(self, name):
self.name = name
mapper(User, user_table)
Здесь:
user_table— описание таблицы в базе,User— класс Python,mapper()связывает класс с таблицей.
Такой подход даёт гибкость в настройке маппинга и полезен, когда нужно более явно контролировать процесс сопоставления, например, при работе с уже существующими таблицами или сложными схемами.