import os
import streamlit as st
import psycopg2
@st.cache_resource
def get_db_connection():
"""Lakebase 연결을 캐싱하여 재사용합니다."""
return psycopg2.connect(os.getenv("DB_CONNECTION"))
conn = get_db_connection()
st.title("피드백 수집 앱")
# 피드백 입력 폼
with st.form("feedback_form"):
name = st.text_input("이름")
feedback = st.text_area("피드백")
rating = st.slider("만족도", 1, 5, 3)
submitted = st.form_submit_button("제출")
if submitted:
with conn.cursor() as cur:
cur.execute(
"INSERT INTO feedback (name, feedback, rating) VALUES (%s, %s, %s)",
(name, feedback, rating)
)
conn.commit()
st.success("피드백이 저장되었습니다!")
# 피드백 목록 조회
with conn.cursor() as cur:
cur.execute("SELECT name, feedback, rating, created_at FROM feedback ORDER BY created_at DESC LIMIT 20")
rows = cur.fetchall()
if rows:
import pandas as pd
df = pd.DataFrame(rows, columns=["이름", "피드백", "만족도", "작성일"])
st.dataframe(df)