Создание базы данных и таблиц с помощью SQLAlchemy ORM

Создание базы данных и таблиц с помощью SQLAlchemy ORM

SQLAlchemy ORM (Object-Relational Mapping) предоставляет мощный и гибкий инструмент для работы с реляционными базами данных. Эта статья расскажет о том, как создать базу данных и таблицы с использованием ORM.

Настройка

Прежде всего, вам нужно установить SQLAlchemy:

pip install sqlalchemy

Далее, импортируйте необходимые библиотеки:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Создание базы данных

SQLAlchemy работает с различными СУБД. Вы можете выбрать любую из поддерживаемых, например SQLite:

DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(DATABASE_URL)

Определение модели данных

Вместо явного создания таблицы в базе данных, в ORM вы создаете класс, который отображается на таблицу:

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String, index=True)
    age = Column(Integer)

Здесь:

  • Base – базовый класс, от которого наследуются все ваши модели.
  • __tablename__ – имя таблицы в базе данных.
  • Column – определяет столбец в таблице.

Создание таблиц в базе данных

После определения всех моделей, вы можете создать таблицы:

Base.metadata.create_all(bind=engine)

Это создаст таблицы в базе данных, которые соответствуют вашим моделям.

Работа с данными

Для выполнения операций с данными, таких как вставка, выборка, обновление и удаление, используйте сессии:

SessionLocal = sessionmaker(bind=engine)

# создание экземпляра сессии
db = SessionLocal()

# создание нового пользователя
new_user = User(name="Alex", age=25)
db.add(new_user)
db.commit()

# выборка данных
users = db.query(User).all()
for user in users:
    print(user.name, user.age)

Закрытие сессии

Не забудьте закрыть сессию после завершения работы:

db.close()

Заключение

С помощью SQLAlchemy ORM создание базы данных и таблиц становится удивительно простым и интуитивно понятным процессом. Этот подход предоставляет гибкость и мощь Python для работы с реляционными базами данных, делая код более чистым и организованным.

Однако это лишь вершина айсберга возможностей SQLAlchemy. Чем глубже вы погружаетесь в эту библиотеку, тем больше открываете для себя мощных и гибких инструментов для работы с данными.

Содержание: