SQLAlchemy를 이용한 PostgreSQL insert

yc999·2021년 1월 31일
1

python

목록 보기
1/1
post-thumbnail

ORM 이란?

Object-Relation Mapping 호환되지 않는 type system들 끼리의 데이터 변환을 해 주는 기술이다. 보통 RDBMS에 대해서 많이 사용한다.

SQLAlchemy 란?

python ORM 구현 라이브러리.

OOP에서 RDMBS를 제어하는 것이 어떤 문제가 있나?

ORM 기술을 사용하는 이유

  • Row, Col이 아닌 오브젝트 관점에서 작업을 수행하는 것이 가능하다.

ex) SQLAlchemy를 사용하지 않았을 떄

# ORM을 사용했을 때
import psycopg2

cursor = connection.cursor()

postgres_insert_query = """ INSERT INTO mobile (ID, MODEL, PRICE) VALUES (%s,%s,%s)"""
record_to_insert = (5, 'One Plus 6', 950)

cursor.execute(postgres_insert_query, record_to_insert)
connection.commit()

ex2) SQLAlchemy를 사용했을 때

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

Base = declarative_base()

class mobile(Base):
    __tablename__ = "mobile"
    
    id = Column(Integer, primary_key=True)
    model = Column(Text)
    price = Column(Ingeger)

engine = create_engine("postgres://user passwd host port db_name")
Session = sessionmaker()
Session.configure(bind=engine)

session = Session()
session.add(mobile(id=1, model="Note2", price="100"))
session.commit()
session.close()
profile
꼬물꼬물 앞으로 가는 중

0개의 댓글