콘텐츠로 이동

버튼으로 DB 조회하기

필요한 모듈 설치하기

!pip install openai
!pip install gradio

DB 조회 기능 구현하기

import gradio as gr
import sqlite3
import pandas as pd

# 버튼 클릭 시 실행될 함수 정의
def button1_action():
    return select_db('기술지원')

def button2_action():
    return select_db('영업')

def button3_action():
    return select_db('생산')


# SQLite 데이터베이스에서 분야별로 데이터 가져오는 함수
def select_db(subject):

    # SQLite 데이터베이스에 연결 (파일이 없다면 자동으로 생성됨)
    conn = sqlite3.connect('customer.db')  # 'customer.db'는 데이터베이스 파일 이름

    # 데이터 조회
    query = 'SELECT * FROM as_list where subject = "' + subject + '"'    
    df = pd.read_sql_query(query, conn)

    return df


# Blocks 사용하여 인터페이스 생성
with gr.Blocks() as demo:
    # Markdown으로 제목 추가
    gr.Markdown("# 고객 AS 리스트")
    gr.Markdown("고객이 요청한 데이터를 표시합니다.")

    # Row() 안에 두 개의 버튼을 배치
    with gr.Row():
        button1 = gr.Button("기술지원")
        button2 = gr.Button("영업")
        button3 = gr.Button("생산")

    # 버튼 클릭 시 실행될 출력 필드
    output = gr.DataFrame(label="출력")

    # 각 버튼에 클릭 이벤트와 출력 연결
    button1.click(fn=button1_action, outputs=output)
    button2.click(fn=button2_action, outputs=output)
    button3.click(fn=button3_action, outputs=output)

# 인터페이스 실행
demo.launch()

컬럼 이름 변경 및 초기 실행

import gradio as gr
import sqlite3
import pandas as pd

# 버튼 클릭 시 실행될 함수 정의
def button1_action():
    return select_db('기술지원')

def button2_action():
    return select_db('영업')

def button3_action():
    return select_db('생산')


# SQLite 데이터베이스에서 분야별로 데이터 가져오는 함수
def select_db(subject):

    # SQLite 데이터베이스에 연결 (파일이 없다면 자동으로 생성됨)
    conn = sqlite3.connect('customer.db')  # 'customer.db'는 데이터베이스 파일 이름

    # 데이터 조회
    query = 'SELECT * FROM as_list where subject = "' + subject + '"'    
    df = pd.read_sql_query(query, conn)

    df = df.rename(columns={'title': '제목', 'subject': '분류', 'content': '내용'})

    return df


# Blocks 사용하여 인터페이스 생성
with gr.Blocks() as demo:
    # Markdown으로 제목 추가
    gr.Markdown("# 고객 AS 리스트")
    gr.Markdown("고객이 요청한 데이터를 표시합니다.")

    # Row() 안에 두 개의 버튼을 배치
    with gr.Row():
        button1 = gr.Button("기술지원")
        button2 = gr.Button("영업")
        button3 = gr.Button("생산")

    # 초기 실행
    df= select_db('기술지원')

    # 버튼 클릭 시 실행될 출력 필드
    output = gr.DataFrame(df, label="출력")

    # 각 버튼에 클릭 이벤트와 출력 연결
    button1.click(fn=button1_action, outputs=output)
    button2.click(fn=button2_action, outputs=output)
    button3.click(fn=button3_action, outputs=output)    

# 인터페이스 실행
demo.launch()