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. Чем глубже вы погружаетесь в эту библиотеку, тем больше открываете для себя мощных и гибких инструментов для работы с данными.
Содержание: