250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 주성분분석
- t-test
- 파이썬
- 컴퓨터공학
- 웜업
- 캐글
- 코랩
- 기계학습
- 데이터시각화
- 선형대수학
- 인공지능
- 로지스틱회귀분석
- Ai
- 다중회귀분석
- 국비지원교육
- 컨설팅펌
- 데이터사이언스
- 부트캠프
- 웹스크래핑
- K-Digital Training
- 코드스테이츠
- 비전공자
- AI부트캠프
- BCG
- 디지털트레이닝
- PCA
- 맥킨지
- RA
- 컨설팅
- 빅데이터
Archives
- Today
- Total
94년생 스피노자
[Week 2 - Day 4] ORM (Object Relational Mapper) 본문
코드스테이츠 AI 부트캠프/iii) 데이터 엔지니어링
[Week 2 - Day 4] ORM (Object Relational Mapper)
94년생 스피노자 2021. 7. 20. 10:20728x90
오늘은 ORM에 대해서 배운다.
간단히 말해서 Python에서 SQL을 가능하게 한다.
저번에 SQL을 배울 때는 별도의 문법을 사용해야 했다.
ORM은 Python스럽게 SQL을 조작할 수 있게 만들어준다.
이를 위해서는 SQLAlchemy를 설치해줘야한다.
따라갈 수 있는 코드를 아래 작성해놓겠다.
Step 1. SQLAlchemy 설치
pip install --pre SQLAlchemy
Step 2. SQLAlchemy Base 및 Engine 만들기
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
Base = declarative_base()
engine = create_engine("sqlite:///orm_db.sqlite3")
Step 3. SQL Table 만들기
from sqlalchemy import Column, Integer, String
# Table 만들기
class User(Base):
__tablename__ = 'User'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
def __repr__(self):
return f"User {self.id}: {self.name}"
# 만들어진 Table을 Engine에 집어넣기
base.metadata.create_all(engine)
Step 4. 인스턴스 추가하기
from sqlalchemy.orm import sessionmaker
# Engine과 연결하기
session = session maker(bind=engine)
# 인스턴스 추가하기
patrick = User(name="Patrick", age=20)
spongebob = User(name="Spongebob", age=20)
# Session에 추가하기
s = session()
s.add(patrick)
s.add(spongebob)
# 추가사항 SQL에 반영하기
s.commit()
Step 4-1. 인스턴스 제거하기 및 수정하기
# 인스턴스를 변경하려면 해당 인스턴스를 직접 불러와야함
patrick_remove = s.query(User).filter_by(name="Patrick").first()
# 불러온 것은 제거
s.delete(patrick_remove)
s.commit()
# 수정할 때도 마찬가지로 직접 불러와야함
spongebob_happy = s.query(User).filter_by(name="Spongebob").first()
# 불러온 것을 수정
spongebob_happy.name = "Spongebob_Happy"
s.commit()
모두 행복하길
-끝-
728x90
'코드스테이츠 AI 부트캠프 > iii) 데이터 엔지니어링' 카테고리의 다른 글
[Week 3 - Day 2&3] 플라스크 (Flask) (0) | 2021.07.28 |
---|---|
[Week 3 - Day 1] API 기초 (Intro to API) (0) | 2021.07.23 |
[Week 2 - Day 3] 웹 스크래핑 (Web Scraping) (0) | 2021.07.20 |
[Week 2 - Day 1&2] 기초 파이썬 (0) | 2021.07.19 |
[Week 1 - Day 3&4] SQL (씨퀄) (0) | 2021.07.15 |