프로그래밍/Python

[Python] ORM 도구 sqlalchemy 사용하기 (sqlite)

큐레이트 2022. 2. 6. 16:58
반응형
반응형

환경 : python 3.9, pycharm


sqlalchemy 라이브러리 추가

FILE > Settings (Ctrl + Alt + S)

Settings

sqlalchemy 선택후 Install Package 설치 하면 끝


Code

 

sqlite_base.py

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine("sqlite:///db\\user.db", echo=True)
db_session = scoped_session(sessionmaker(autocommit=False,
                                         autoflush=False,
                                         bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()

# 오류발생시 sqlite 홈페이지에 들어가서 자기환경에 맡는 bit (내기준 64bit) dll download해서
# anaconda3\envs\프로젝트\Dlls 폴더에 넣어준다.
# https://www.sqlite.org/index.html


def init_db():
    Base.metadata.create_all(bind=engine)

 

User.py

from sqlite_base import *
from sqlalchemy import Column, Integer, String


class User(Base):
    __tablename__ = "user"
    id = Column(Integer, primary_key=True)
    name = Column(String, nullable=False)
    age = Column(Integer)

    def __init__(self, name, age):
        self.name = name
        self.age = age


# 데이터베이스 생성
init_db()

 

main.py

from User import User
from sqlite_base import db_session


# user 테이블에 데이터 추가
def addUser(name, age):
    user = User(name, age)
    db_session.add(user)
    db_session.commit()


if __name__ == '__main__':
    addUser('테스트', 30)
    addUser('홍길동', 20)

 

코드 실행후 조회 결과

 

 

 

 

 

반응형