반응형
SQLAlchemy
를 PostgreSQL
과 연동하여 사용하는 방법을 단계별로 설명해 드릴게요. 이를 위해 psycopg2
라는 PostgreSQL 드라이버를 사용해야 합니다.
- 필요한 라이브러리 설치
- 먼저
SQLAlchemy
와psycopg2
를 설치합니다. 다음 명령어를 사용하세요:
pip install sqlalchemy psycopg2-binary
- 데이터베이스 연결 설정
- PostgreSQL 데이터베이스에 연결하려면
create_engine()
메서드를 사용하여 연결 URL을 설정해야 합니다. PostgreSQL의 연결 URL 형식은 다음과 같습니다:
postgresql+psycopg2://username:password@host:port/database_name
예를 들어, username
이 user
, password
가 password
, host
가 localhost
, port
가 5432
, 데이터베이스 이름이 mydatabase
라면, 다음과 같이 설정합니다:
from sqlalchemy import create_engine
# PostgreSQL 데이터베이스 연결 설정
engine = create_engine('postgresql+psycopg2://user:password@localhost:5432/mydatabase', echo=True)
- ORM을 사용한 테이블 정의
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
# 테이블 클래스 정의
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
def __repr__(self):
return f"<User(name='{self.name}', age='{self.age}')>"
# 데이터베이스에 테이블 생성
Base.metadata.create_all(engine)
- 이전과 마찬가지로
declarative_base()
를 사용해 기본 클래스를 생성하고, 이를 상속받는 방식으로 테이블을 정의합니다. - 세션 설정
- 데이터베이스와 상호작용하기 위해
Session
을 설정합니다.
from sqlalchemy.orm import sessionmaker
# 세션 생성
Session = sessionmaker(bind=engine)
session = Session()
- 데이터 삽입
- 사용자 데이터를 추가하는 예시입니다.
# 새 사용자 인스턴스 생성
new_user = User(name='Bob', age=25)
# 세션을 통해 데이터 추가
session.add(new_user)
# 데이터베이스에 커밋
session.commit()
- 데이터 조회
- 사용자 데이터를 조회하는 방법입니다.
# 모든 사용자 조회
users = session.query(User).all()
for user in users:
print(user)
# 특정 사용자 조회
user = session.query(User).filter_by(name='Bob').first()
print(user)
- 데이터 수정 및 삭제
- 데이터를 수정하려면 객체의 속성을 변경한 후 커밋하면 됩니다.
user = session.query(User).filter_by(name='Bob').first()
user.age = 26
session.commit()
```
- 데이터를 삭제하려면 `session.delete()` 메서드를 사용합니다.
```python
user = session.query(User).filter_by(name='Bob').first()
session.delete(user)
session.commit()
- 세션 닫기
- 작업이 끝난 후에는 세션을 닫아야 합니다.
session.close()
이런 방식으로 SQLAlchemy를 통해 PostgreSQL 데이터베이스와 상호작용할 수 있습니다. SQLAlchemy
의 ORM 기능을 사용하면 데이터베이스와 파이썬 코드 간의 매핑을 쉽게 할 수 있고, 복잡한 SQL 쿼리도 객체 지향 방식으로 처리할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] pip - 패키지 설치 관련 상세 옵션 알아보기 (0) | 2024.10.21 |
---|---|
[ Python ] mariadb - MariaDB와 연동하기 (0) | 2024.10.10 |
[ Python ] SQLAlchemy + SQLite - 데이터 베이스 연결하기 (0) | 2024.10.09 |
[ Python ] cached_property - 값을 재사용 하기 (1) | 2024.10.09 |
[ Python ] sleep() 딜레이(delay) 하기 (2) | 2024.10.01 |