Flask

Chapter 3-9 Flask-SQLAlchemy CRUD 테스트 방법

Chansman 2025. 4. 21. 10:56

📌 개념 정리

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을 활용하여 데이터를 쉽게 생성, 조회, 수정, 삭제할 수 있습니다.
  • 이 테스트 방법을 통해 데이터베이스 작업의 일관성과 정확성을 유지할 수 있습니다.