Chapter 3-12 Flask 개념 정리

2025. 4. 21. 11:15·Flask
목차
  1. 3-12. 정리
  2. 1️⃣ Flask-SQLAlchemy 설정
  3. 2️⃣ 모델 정의
  4. 3️⃣ 데이터 조회
  5. 4️⃣ 조회 결과 활용

📌 개념 정리

3-12. 정리

1️⃣ Flask-SQLAlchemy 설정

먼저, Flask 애플리케이션에 Flask-SQLAlchemy를 설정합니다. 이를 위해 SQLAlchemy 객체를 생성하고 Flask 앱과 연결합니다.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# Flask 애플리케이션 생성
app = Flask(__name__)

# 데이터베이스 URI 설정
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///yourdatabase.db'  # 여기서 데이터베이스 URI 설정

# SQLAlchemy 객체 생성 및 Flask 앱과 연결
db = SQLAlchemy(app)
  • SQLAlchemy 객체를 생성하여 Flask 애플리케이션에 연결합니다. 이렇게 설정하면, SQLAlchemy를 사용하여 데이터베이스와 상호작용할 수 있습니다.

2️⃣ 모델 정의

데이터베이스 테이블에 해당하는 모델 클래스를 정의합니다. 이 클래스는 **db.Model**을 상속받아 SQLAlchemy ORM을 통해 데이터베이스 작업을 수행할 수 있습니다.

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)  # 고유 ID 필드
    username = db.Column(db.String(80), unique=True, nullable=False)  # 사용자명 필드
  • User 모델은 db.Model을 상속받아 데이터베이스 테이블을 정의합니다.
  • id와 username은 User 테이블에서 사용되는 필드입니다.

3️⃣ 데이터 조회

데이터베이스로부터 데이터를 가져오는 과정은 주로 query 객체를 사용하여 수행됩니다. 아래는 몇 가지 일반적인 조회 방법입니다:

📍 모든 레코드 조회

users = User.query.all()
for user in users:
    print(user.username)
  • query.all(): User 테이블에서 모든 레코드를 가져옵니다.

📍 특정 조건을 만족하는 레코드 조회

user = User.query.filter_by(username='exampleuser').first()
if user:
    print(user.username)
  • filter_by(): 주어진 조건(username='exampleuser')에 맞는 첫 번째 레코드를 반환합니다.

📍 기본 키로 조회

user = User.query.get(user_id)
if user:
    print(user.username)
  • query.get(): 기본 키(primary key)로 레코드를 조회합니다. user_id로 사용자를 조회합니다.

4️⃣ 조회 결과 활용

조회된 결과는 Python 객체로 반환되므로, 이를 직접 사용하거나 필요한 데이터만 추출하여 다른 형식(JSON 등)으로 변환할 수 있습니다.

📍 Flask 뷰에서 JSON 응답하기

from flask import jsonify

@app.route('/users')
def list_users():
    users = User.query.all()
    return [{'id': user.id, 'username': user.username} for user in users]
  • 조회된 User 데이터를 JSON 형식으로 변환하여 클라이언트에게 반환합니다.

✅ 마무리 요약 및 복습 포인트

  • Flask-SQLAlchemy 설정: SQLAlchemy 객체를 생성하고 앱과 연결하여 데이터베이스 작업을 수행합니다.
  • 모델 정의: 데이터베이스 테이블을 db.Model 클래스를 상속받아 정의합니다.
  • 데이터 조회: query.all(), filter_by(), query.get()을 사용하여 데이터를 조회합니다.
  • 조회 결과 활용: 조회된 데이터를 필요한 형식으로 변환하고 클라이언트에게 응답합니다.

'Flask' 카테고리의 다른 글

Chapter 4-2 실습_블로그 구현 (Flask-MySQL를 활용)  (0) 2025.04.22
Chapter 4-1 Flask-Migrate란?  (0) 2025.04.22
Chapter 3-11 직렬화(Serialization) & 역직렬화(Deserialization)  (0) 2025.04.21
Chapter 3-10 Schema & Model 차이  (0) 2025.04.21
Chapter 3-9 Flask-SQLAlchemy CRUD 테스트 방법  (0) 2025.04.21
  1. 3-12. 정리
  2. 1️⃣ Flask-SQLAlchemy 설정
  3. 2️⃣ 모델 정의
  4. 3️⃣ 데이터 조회
  5. 4️⃣ 조회 결과 활용
'Flask' 카테고리의 다른 글
  • Chapter 4-2 실습_블로그 구현 (Flask-MySQL를 활용)
  • Chapter 4-1 Flask-Migrate란?
  • Chapter 3-11 직렬화(Serialization) & 역직렬화(Deserialization)
  • Chapter 3-10 Schema & Model 차이
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-12 Flask 개념 정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.