📌 개념 정리
3-9. Flask-SQLAlchemy CRUD 테스트 방법
Flask-SQLAlchemy를 활용해 파이썬 쉘에서 직접 ORM을 테스트하는 방법입니다.
🚀 Python Shell 기반 ORM 테스트
> python # 파이썬 쉘 접속
from db import db
from app import app
from models import User
with app.app_context():
# 여기에 코드 작성
📌 CRUD 테스트 상세 설명
1️⃣ 데이터 삽입하기 (Create)
- Step 1: 모델 인스턴스를 생성합니다.
- Step 2: 세션에 추가한 후 커밋하여 데이터베이스에 저장합니다.
with app.app_context():
new_user = User(name='newuser', email='newuser@example.com')
db.session.add(new_user)
db.session.commit()
user = User.query.filter_by(name='newuser').first()
print(user)
print(user.name) # 출력: newuser
print(user.email) # 출력: newuser@example.com
2️⃣ 데이터 조회하기 (Read)
- SQLAlchemy의 쿼리 인터페이스를 사용하여 데이터를 조회합니다.
✔️ 모든 레코드 조회
with app.app_context():
users = User.query.all()
for user in users:
print(user.id, user.name, user.email)
✔️ 조건 기반 레코드 조회
with app.app_context():
users = User.query.filter_by(name='coding').all()
print(users)
with app.app_context():
user = User.query.filter_by(name='newuser').first()
if user:
print(f'Name: {user.name}, Email: {user.email}')
else:
print('User not found')
3️⃣ 데이터 업데이트하기 (Update)
- 데이터를 수정하려면 우선 해당 데이터를 조회하고, 변경할 필드 값을 업데이트 후 세션에 커밋합니다.
with app.app_context():
user = User.query.filter_by(name='newuser').first()
if user:
user.email = 'updated@example.com'
db.session.commit()
print('User updated')
else:
print('User not found')
4️⃣ 데이터 삭제하기 (Delete)
- 데이터를 삭제할 때는 해당 데이터를 조회하여 세션에서 삭제 후 커밋합니다.
with app.app_context():
user = User.query.filter_by(name='newuser').first()
if user:
db.session.delete(user)
db.session.commit()
print('User deleted')
else:
print('User not found')
✅ 마무리 요약 및 복습 포인트
- Flask-SQLAlchemy를 이용한 CRUD 테스트는 Python Shell을 통해 손쉽게 진행 가능합니다.
- ORM을 활용하여 데이터를 쉽게 생성, 조회, 수정, 삭제할 수 있습니다.
- 이 테스트 방법을 통해 데이터베이스 작업의 일관성과 정확성을 유지할 수 있습니다.
'Flask' 카테고리의 다른 글
Chapter 3-11 직렬화(Serialization) & 역직렬화(Deserialization) (0) | 2025.04.21 |
---|---|
Chapter 3-10 Schema & Model 차이 (0) | 2025.04.21 |
Chapter 3-8 DB 객체 모델 정의 방법 2가지 (0) | 2025.04.21 |
Chapter 3-7 Flask-SQLAlchemy 게시판 관리 웹 페이지 구축(routes/board.py) (0) | 2025.04.21 |
Chapter 3-6 Flask-SQLAlchemy 게시판 관리 웹 페이지 구축(routes/board.py) (0) | 2025.04.21 |