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

2025. 4. 21. 10:56·Flask

📌 개념 정리

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
'Flask' 카테고리의 다른 글
  • Chapter 3-11 직렬화(Serialization) & 역직렬화(Deserialization)
  • Chapter 3-10 Schema & Model 차이
  • Chapter 3-8 DB 객체 모델 정의 방법 2가지
  • Chapter 3-7 Flask-SQLAlchemy 게시판 관리 웹 페이지 구축(routes/board.py)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (552) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (23)
      • Database (40)
      • 멘토링 (10) N
      • 특강 (25)
      • 기술블로그 (176) N
      • AI 분석 (3)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 3-9 Flask-SQLAlchemy CRUD 테스트 방법
상단으로

티스토리툴바