Chapter 2-6 Flask-MySQLdb 설정 및 사용법

2025. 4. 18. 19:46·Flask

📌 Flask-MySQLdb 설정 및 사용법

이번 포스팅에서는 Flask 애플리케이션에서 MySQL을 사용하는 방법을 다뤄보겠습니다. Flask와 MySQL을 연결할 때 flask-mysqldb를 사용하면 쉽게 연결할 수 있습니다. 단계별로 설치 및 설정 방법을 안내하고, 실제 예시 코드를 통해 설명드리겠습니다.


🚦 1. 가상환경 설정 및 flask-mysqldb 설치

(1) 가상환경 접속 후 flask-mysqldb 추가

먼저, Flask 애플리케이션을 위한 가상환경을 활성화한 후, flask-mysqldb를 설치해야 합니다. 아래 명령어를 사용해 설치하세요.

> pip install flask-mysqldb
  • 설치 후, Flask와 MySQL을 연동할 준비가 되었습니다.

참고자료:

  • Flask-MySQLdb · PyPI

설치 이슈 (맥 사용자의 경우)

  • 맥에서 설치 시, pkg-config가 없다는 오류가 발생할 수 있습니다. 이 경우, pkg-config를 설치하여 해결할 수 있습니다.
> brew install pkg-config
  • pkg-config는 라이브러리의 컴파일 및 링크 옵션을 제공하는 중요한 툴입니다.

💻 2. MySQL 테이블 생성

MySQL 데이터베이스와 테이블을 생성해야 합니다. 아래 SQL 명령어로 데이터베이스와 테이블을 설정할 수 있습니다.

(1) MySQL 데이터베이스 생성

CREATE DATABASE oz;
USE oz;

(2) MySQL 테이블 생성

 
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

💡 3. Flask 애플리케이션에서 MySQL 연동하기

flask-mysqldb를 설치하고 MySQL 테이블을 만든 후, Flask 애플리케이션에서 MySQL을 사용할 수 있게 됩니다. 간단한 예시로, 사용자가 입력한 데이터를 MySQL에 저장하고 조회하는 코드를 작성해보겠습니다.

(1) Flask 설정 코드 예시

from flask import Flask, request, jsonify
from flask_mysqldb import MySQL

app = Flask(__name__)

# MySQL 연결 설정
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'yourpassword'
app.config['MYSQL_DB'] = 'oz'

mysql = MySQL(app)

@app.route('/add_user', methods=['POST'])
def add_user():
    name = request.json['name']
    email = request.json['email']
    cursor = mysql.connection.cursor()
    cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", (name, email))
    mysql.connection.commit()
    cursor.close()
    return jsonify({'message': 'User added successfully'})

@app.route('/get_users', methods=['GET'])
def get_users():
    cursor = mysql.connection.cursor()
    cursor.execute("SELECT * FROM users")
    users = cursor.fetchall()
    cursor.close()
    return jsonify(users)

if __name__ == '__main__':
    app.run(debug=True)

(2) 동작 원리

  • POST /add_user: 사용자 이름과 이메일을 입력받아 MySQL에 저장합니다.
  • GET /get_users: MySQL에서 모든 사용자 정보를 조회하여 반환합니다.

🧪 실전 활용

실제로 위 코드를 실행하면, POST 요청을 통해 사용자를 추가하고, GET 요청으로 데이터를 조회할 수 있습니다. 이를 통해 간단한 Flask와 MySQL 연동 애플리케이션을 만들 수 있습니다.


🧠 고급 팁

  • SQL 인젝션 방지: 위 코드에서는 SQL 쿼리에서 사용자 입력을 직접 사용하지 않고, 파라미터화된 쿼리(%s)를 사용하여 SQL 인젝션 공격을 방지합니다. 이는 보안상 매우 중요합니다.
  • 에러 처리: 실제 서비스에서는 MySQL 연결 실패, 쿼리 오류 등을 처리하는 코드도 추가해야 합니다. 예외 처리 코드를 추가하여 안정성을 높일 수 있습니다.

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

  1. flask-mysqldb 설치: pip install flask-mysqldb 명령어로 설치하고, MySQL과 Flask를 연결합니다.
  2. MySQL 테이블 생성: MySQL에서 CREATE DATABASE와 CREATE TABLE 명령어로 데이터베이스와 테이블을 설정합니다.
  3. Flask와 MySQL 연동: flask-mysqldb를 활용해 Flask 애플리케이션에서 MySQL에 데이터를 추가하고 조회하는 방법을 학습했습니다.

'Flask' 카테고리의 다른 글

Chapter 3-1 ORM이란? Flask-SQLAlchemy란?  (0) 2025.04.21
Chapter 2-7 Flask MySQL CRUD 애플리케이션 구현  (0) 2025.04.18
Chapter 2-5 Flask-Smorest 활용하여 REST API 생성  (0) 2025.04.18
Chapter 2-4 Flask-Smorest 활용하여 REST API 생성  (0) 2025.04.18
Chapter 2-3 Flask-RESTful API  (0) 2025.04.18
'Flask' 카테고리의 다른 글
  • Chapter 3-1 ORM이란? Flask-SQLAlchemy란?
  • Chapter 2-7 Flask MySQL CRUD 애플리케이션 구현
  • Chapter 2-5 Flask-Smorest 활용하여 REST API 생성
  • Chapter 2-4 Flask-Smorest 활용하여 REST API 생성
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 2-6 Flask-MySQLdb 설정 및 사용법
상단으로

티스토리툴바