본문 바로가기

개발(합니다)/Python

[Python] SQLAlchemy CRUD 사용하는 방법

반응형

SQLAlchemy를 사용하면서 CRUD 사용하는 방법에 대한 포스팅입니다.

Create

session.add('추가할 객체 이름')
session.commit()

ex) User를 DB에 추가
    tmpUser = User(name, fullname, password)
    session.add(tmpUser)
    session.commit()

Update

session.query('수정할 객체 타입').filter_by('수정할 객체 정보').update('수정 사항')
session.commit()

ex) 입력한 name, fullname, password가 모두 일치하는 User의 정보 수정
    session.query(User).filter_by(name = name, fullname = fullname, password = password).update({"name" : pname, "fullname" : pfullname, "password" : ppassword})
    session.commit()

DELETE

session.query('삭제할 객체 타입').filter_by('삭제할 객체 정보')
session.commit()

ex) 입력한 name, fullname, password가 모두 일치하는 User 삭제
    session.query(User).filter_by(name=name, fullname=fullname, password=password).delete()
    session.commit()

Select

obj = session.query('검색할 객체 타입').filter_by('검색 옵션')

ex) 입력한 name, fullname, password가 모두 일치하는 User 검색
    tmpUser = session.query(User).filter_by(name = name, fullname = fullname, password = password)
    print tmpUser

select는 다양한 방법으로 사용 가능합니다.

    def findByName(self, tableName, name):

        table = db.Table(tableName, metadata, autoload=True, autoload_with=DATABASES)
        query = db.select([table]).where(table.columns.name == name)
        result_data = connection.execute(query)
        return result_data.fetchall()

테이블 전체 조회하는 방법

    def get(self, tableName):

        table = db.Table(tableName, metadata, autoload=True, autoload_with=DATABASES)
        query = db.select([table])

        result_data = connection.execute(query)
        return result_data.fetchall()

 

반응형