[파이썬][AI Chatbot] Flask의 데이터베이스 연동 예제

Flask 애플리케이션에서 데이터베이스를 사용하려면 SQL 데이터베이스를 연동하고 데이터를 저장, 조회, 수정, 삭제할 수 있는 방법을 이해해야 합니다. 아래는 Flask에서 SQLite 데이터베이스를 연동하여 데이터를 다루는 예제 코드입니다.

  1. SQLite 데이터베이스 설정:

    SQLite 데이터베이스를 설정하려면 sqlite3 모듈을 사용할 수 있습니다. 다음은 데이터베이스 연결 및 테이블 생성의 예제입니다.

    `import sqlite3
    from flask import Flask, g
    
    app = Flask(__name__)
    
    def get_db():
        if 'db' not in g:
            g.db = sqlite3.connect('mydatabase.db')
        return g.db
    
    @app.route('/')
    def index():
        db = get_db()
        cursor = db.execute('SELECT * FROM users')
        users = cursor.fetchall()
        return str(users)
    
    if __name__ == '__main__':
        app.run()` 
  1. 데이터베이스 테이블 생성:

    데이터베이스에 테이블을 생성하는 코드입니다.

    `def init_db():
        db = get_db()
        with app.open_resource('schema.sql', mode='r') as f:
            db.cursor().executescript(f.read())
        db.commit()
    
    @app.cli.command('initdb')
    def initdb_command():
        init_db()
        print('Initialized the database.')` 
  1. 데이터베이스 스키마 설정:

    schema.sql 파일을 생성하고 테이블 스키마를 작성합니다.

    `DROP TABLE IF EXISTS users;
    CREATE TABLE users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        username TEXT NOT NULL,
        email TEXT NOT NULL
    );

위의 예제에서는 SQLite 데이터베이스를 사용하여 users 테이블을 생성하고, / 경로에서 데이터베이스에서 사용자 데이터를 조회하는 방식을 보여줍니다. 데이터베이스 연결 및 관리를 위해 get_db 함수와 데이터베이스 초기화를 위한 init_db 함수를 정의하고, app.cli.command 데코레이터를 사용하여 커맨드 라인에서 데이터베이스 초기화 명령을 실행할 수 있도록 합니다.

Flask에서 데이터베이스를 연동하려면 데이터베이스 종류에 따라 다른 모듈을 사용하고, ORM (객체 관계 매핑)을 사용하는 등의 고급 기능을 활용할 수 있습니다. 이를 통해 데이터베이스와의 상호작용을 더욱 효율적으로 관리할 수 있습니다.