📌 Flask-MySQLdb 설정 및 사용법
이번 포스팅에서는 Flask 애플리케이션에서 MySQL을 사용하는 방법을 다뤄보겠습니다. Flask와 MySQL을 연결할 때 flask-mysqldb를 사용하면 쉽게 연결할 수 있습니다. 단계별로 설치 및 설정 방법을 안내하고, 실제 예시 코드를 통해 설명드리겠습니다.
🚦 1. 가상환경 설정 및 flask-mysqldb 설치
(1) 가상환경 접속 후 flask-mysqldb 추가
먼저, Flask 애플리케이션을 위한 가상환경을 활성화한 후, flask-mysqldb를 설치해야 합니다. 아래 명령어를 사용해 설치하세요.
> pip install flask-mysqldb
- 설치 후, Flask와 MySQL을 연동할 준비가 되었습니다.
참고자료:
설치 이슈 (맥 사용자의 경우)
- 맥에서 설치 시, 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 연결 실패, 쿼리 오류 등을 처리하는 코드도 추가해야 합니다. 예외 처리 코드를 추가하여 안정성을 높일 수 있습니다.
✅ 마무리 요약 및 복습 포인트
- flask-mysqldb 설치: pip install flask-mysqldb 명령어로 설치하고, MySQL과 Flask를 연결합니다.
- MySQL 테이블 생성: MySQL에서 CREATE DATABASE와 CREATE TABLE 명령어로 데이터베이스와 테이블을 설정합니다.
- 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 |