[python] 파이썬 웹앱과 데이터베이스 연동하기

파이썬을 사용하여 웹앱을 개발할 때 데이터베이스와의 연동은 매우 중요합니다. 데이터를 저장, 검색, 수정, 삭제하는 기능을 구현할 수 있어야 합니다. 이를 위해 대부분의 웹 애플리케이션은 데이터베이스를 사용하며, 파이썬으로 데이터베이스를 연동하는 방법을 알아봅시다.

1. 데이터베이스 설정

가장 일반적인 데이터베이스로는 SQLite, MySQL, PostgreSQL 등이 있습니다. 이 가운데 SQLite로 간단한 예제를 살펴보겠습니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect('example.db')

# 커서 생성
cur = conn.cursor()

# 테이블 생성
cur.execute('''CREATE TABLE IF NOT EXISTS stocks
               (date text, trans text, symbol text, qty real, price real)''')

# 데이터 삽입
cur.execute("INSERT INTO stocks VALUES ('2022-01-05','BUY','GOOG',100,350.0)")

# 커밋
conn.commit()

# 연결 종료
conn.close()

2. 파이썬 웹 앱과의 연동

웹 프레임워크인 Flask를 사용하여 웹 앱과 데이터베이스를 연동할 수 있습니다. 먼저 Flask와 데이터베이스를 연결하기 위한 ORM(Object Relational Mapping) 도구를 설치해야 합니다.

pip install Flask
pip install Flask-SQLAlchemy

다음은 Flask 및 SQLAlchemy를 사용하여 데이터베이스를 연동하는 예제입니다.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)

class Stock(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.String(80))
    trans = db.Column(db.String(120))
    symbol = db.Column(db.String(120))
    qty = db.Column(db.Float)
    price = db.Column(db.Float)

# 데이터베이스 초기화
db.create_all()

3. 데이터베이스 작업

이제 데이터베이스와 웹 앱이 연동되었으므로, 해당 데이터베이스에서 데이터를 검색하거나 변경하는 작업을 수행할 수 있습니다. 이를 통해 사용자가 입력한 데이터를 데이터베이스에 저장하거나, 저장된 데이터를 화면에 출력할 수 있습니다.

# 데이터 삽입
new_stock = Stock(date='2022-01-05', trans='BUY', symbol='GOOG', qty=100, price=350.0)
db.session.add(new_stock)
db.session.commit()

# 데이터 검색
all_stocks = Stock.query.all()

# 데이터 수정
stock = Stock.query.filter_by(symbol='GOOG').first()
stock.qty = 150
db.session.commit()

# 데이터 삭제
stock = Stock.query.filter_by(symbol='GOOG').first()
db.session.delete(stock)
db.session.commit()

위의 예제를 통해 데이터베이스를 설정하고, 파이썬 웹 앱과의 연동 방법을 살펴보았습니다. 데이터베이스를 사용하여 웹 앱을 보다 유용하고 실용적으로 만들 수 있으며, 데이터베이스 관련 작업은 웹 앱 개발에서 중요한 부분입니다.


참고 문헌: