1. Python으로 DB를 다루는 방법 (sqlite3, SQLAlchemy 등)
- 파이썬으로 DB를 다루는 방식은 크게 2가지야:
sqlite3 (기본 내장)
cursor.execute("SELECT * FROM users")
- 파이썬에 기본 포함되어 있는 라이브러리로 직접 SQL 작성해서 실행
- 단순함
- SQL을 직접 써야 함
- 작은 프로젝트에 적합
SQLAlchemy (라이브러리)
user.name = "홍길동" session.add(user)
-
더 강력하고 유연함
-
SQL을 직접 안 써도 됨 (ORM)
-
객체처럼 DB 사용
-
대규모 프로젝트에 적합
2. SQLAlchemy 란? (SQLAlchemy의 특징)
- 파이썬과 데이터베이스 사이의 통번역가 같은 도구로 파이썬에거서 가장 널이 사용됨.
- 관계형 대이테베이스와 상호작용하기 위한 강력하고 유연한 도구 제공
- 여러 DB 지원 (MySQL, SQLite 등) --> 코드수정 최소화
- 유지보수 쉬움
- 가독성 높음
- 보안 면에서도 안전함
SQLAlchemy 구조
2-1. ORM (Object Relational Mapping)
2-2. Core (SQL-Expression Language)
- SQL 문법의 논리를 그대로 유지하면서 파이썬 코드로 쓰고, 파이썬 메서드로 치환한 형태
- 직관적이고 간결한 코드 작성 가능
| 구분 | ORM | Core |
|---|
| 사용 방식 | ORM | Core |
| 사용 방식 | 객체 | SQL 느낌 |
| 제어 | 제한적 | 세밀함 |