Chapter 4-2 실습_블로그 구현 (Flask-MySQL를 활용)

2025. 4. 22. 13:18·Flask

📌 개념 정리

이번 실습에서는 Flask와 MySQL을 활용하여 간단한 블로그 시스템을 구현합니다. 이 시스템은 사용자가 게시글을 생성, 조회, 수정, 삭제할 수 있도록 합니다. 이를 위해 Flask 애플리케이션을 설정하고, MySQL 데이터베이스와 연동하여 CRUD 연산을 수행하는 방법을 배우게 됩니다.


🚦 동작 원리 및 구조

이 프로젝트는 MySQL 데이터베이스에 **posts**라는 테이블을 만들고, 이를 통해 블로그 게시글을 관리합니다. 각 라우트는 HTTP 요청에 따라 SQL 쿼리를 실행하고, 데이터를 처리하여 HTML 템플릿으로 응답합니다.

  1. GET /posts: 모든 게시글을 조회합니다.
  2. GET /posts/<id>: 특정 ID를 가진 게시글을 조회합니다.
  3. POST /posts: 새 게시글을 생성합니다.
  4. PUT /posts/<id>: 특정 ID를 가진 게시글을 수정합니다.
  5. DELETE /posts/<id>: 특정 ID를 가진 게시글을 삭제합니다.

실습_블로그 구현 (Flask-MySQL를 활용)

목표요구 사항

  1. 데이터베이스 설정:
    • MySQL 데이터베이스에 blog 데이터베이스를 생성합니다.
    • posts 테이블을 다음과 같이 정의합니다:
      • id: INT, Primary Key, 자동 증가
      • title: VARCHAR(100), 게시글 제목
      • content: TEXT, 게시글 내용
      • created_at: TIMESTAMP, 기본값 CURRENT_TIMESTAMP
  2. Flask 애플리케이션 설정:
    • Flask 애플리케이션을 설정하고 Flask-MySQL 확장을 사용하여 MySQL 데이터베이스에 연결합니다.
    • db.yaml 파일에 데이터베이스 연결 정보를 저장하고, Flask 애플리케이션에서 이를 로드합니다.
  3. 라우트 및 뷰 함수 구현:
    • GET /posts: 모든 게시글을 조회합니다.
    • GET /posts/<id>: 특정 ID를 가진 게시글을 조회합니다.
    • POST /posts: 새 게시글을 생성합니다.
    • PUT /posts/<id>: 특정 ID를 가진 게시글을 수정합니다.
    • DELETE /posts/<id>: 특정 ID를 가진 게시글을 삭제합니다.
  4. 프론트엔드:
    • 각 라우트에 맞는 HTML 템플릿을 만듭니다.
    • 게시글 목록, 게시글 상세 보기, 게시글 작성 폼을 포함합니다.

참고

  • 데이터베이스 연결 설정은 보안을 위해 별도의 파일(db.yaml)에 저장하고, 이를 읽어서 사용합니다.
  • 각 라우트에 대한 SQL 쿼리를 작성하고 실행합니다.
  • CRUD 연산을 수행하는 뷰 함수를 구현합니다.
  • Flask와 MySQL 데이터베이스를 사용하여 간단한 블로그 시스템을 구축하는 실습을 진행합니다. 이 시스템은 사용자가 블로그 포스트를 생성, 조회, 수정, 삭제할 수 있게 해야 합니다.

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

  • Flask 애플리케이션에서 MySQL과 연결하여 CRUD 연산을 처리하는 방법을 배웠습니다.
  • Flask-MySQL을 사용하여 db.yaml 파일을 통한 데이터베이스 연결 설정을 했습니다.
  • GET, POST, PUT, DELETE 요청을 처리하는 뷰 함수를 작성하고, 이를 통해 블로그 시스템을 구축하는 방법을 익혔습니다.
  • 각 라우트에 맞는 HTML 템플릿을 구현하여 프론트엔드와 백엔드가 유기적으로 연결되도록 했습니다.

'Flask' 카테고리의 다른 글

Chapter 4-4 실습_블로그 구현 (Flask-MySQL를 활용) MySQL 쿼리, db.yaml  (0) 2025.04.22
Chapter 4-3 실습_블로그 구현 (Flask-MySQL를 활용) templates/posts.html  (0) 2025.04.22
Chapter 4-1 Flask-Migrate란?  (0) 2025.04.22
Chapter 3-12 Flask 개념 정리  (0) 2025.04.21
Chapter 3-11 직렬화(Serialization) & 역직렬화(Deserialization)  (0) 2025.04.21
'Flask' 카테고리의 다른 글
  • Chapter 4-4 실습_블로그 구현 (Flask-MySQL를 활용) MySQL 쿼리, db.yaml
  • Chapter 4-3 실습_블로그 구현 (Flask-MySQL를 활용) templates/posts.html
  • Chapter 4-1 Flask-Migrate란?
  • Chapter 3-12 Flask 개념 정리
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (793) N
      • Python (32)
      • 프로젝트 (113) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    life reflection
    self-growth
    RM
    basalcellcarcinoma
    뷔
    americanlaw
    smartphonedurability
    gpterror
    homebartrend
    newpoliticalparty
    classaction
    btsreunion
    btscomeback
    travel ban
    hotcoffeecase
    remittance
    youngprofessionals
    college reunions
    btsdischarge
    bts
    btsjungkook
    urbantrends
    lawsuitculture
    trumpmuskclash
    americaparty
    livebroadcast
    chatgpterror
    chinanightlife
    titaniumcase
    global politics
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 4-2 실습_블로그 구현 (Flask-MySQL를 활용)
상단으로

티스토리툴바