[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()
위의 예제를 통해 데이터베이스를 설정하고, 파이썬 웹 앱과의 연동 방법을 살펴보았습니다. 데이터베이스를 사용하여 웹 앱을 보다 유용하고 실용적으로 만들 수 있으며, 데이터베이스 관련 작업은 웹 앱 개발에서 중요한 부분입니다.
참고 문헌:
- https://flask.palletsprojects.com/
- https://www.sqlalchemy.org/