Gradio + PostgreSQL로 메모장 만들기
강사: 생활코딩 이고잉님
🟦 supabase에 메모장이 저장될 DB 만들기
- supabase에서 table 생성
CREATE TABLE
memo_db (
id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
CONTENT TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO
memo_db (id, CONTENT, created_at)
VALUES
(
DEFAULT,
'이것은 첫 번째 메모의 내용입니다.',
CURRENT_TIMESTAMP
),
(
DEFAULT,
'이것은 두 번째 메모의 내용입니다.',
CURRENT_TIMESTAMP
),
(
DEFAULT,
'이것은 세 번째 메모의 내용입니다.',
CURRENT_TIMESTAMP
),
(
DEFAULT,
'이것은 네 번째 메모의 내용입니다.',
CURRENT_TIMESTAMP
),
(
DEFAULT,
'이것은 다섯 번째 메모의 내용입니다.',
CURRENT_TIMESTAMP
);
SELECT * FROM memo_db
- Colab - Gradio
sql = "SELECT * FROM memo_db"
!pip install psycopg2-binary # PostgreSQL DB와 파이썬 연동하는 라이브러리
- supabase -> project -> project settings -> Database -> Connection parameters 정보를 가져옴.
- connect PostgreSQL
import psycopg2 as ps
conn = ps.connect(
host="aws-0-ap-northeast-2.pooler.supabase.com",
port="6543",
database="postgres",
user="postgres.grwjvatokgumdammwfzx",
password="패스워드 입력"
)
* 패스워드 분실 시 Database password로 Reset .
- 커서 생성
cur = conn.cursor()
- 쿼리 실행
query = "SELECT * FROM memo_db"
cur.execute(query)
rows = cur.fetchall() # rows에 PostgreSQL DB 정보 저장
- gradio import
import gradio as gr
- 접속 종료
cur.close()
conn.close()
🟩 메모장 만들기 전체 코드
import gradio as gr
import psycopg2 as ps
def connect_db():
return ps.connect(
host="aws-0-ap-northeast-2.pooler.supabase.com",
port="6543",
database="postgres",
user="postgres.grwjvatokgumdammwfzx",
password="패스워드 입력"
)
def insert_memo(memo):
# DB 연결
conn = connect_db()
# 커서 생성
cur = conn.cursor()
# INSERT INTO memo_db (content) VALUES (memo의 값)
cur.execute("INSERT INTO memo_db (content) VALUES (%s)", (memo, ))
conn.commit()
# 연결 종료
cur.close()
conn.close()
return get_memos()
def get_memos():
# 데이터베이스 연결
conn = connect_db()
cur = conn.cursor() # 커서 생성
# 메모를 가져오는 SQL 쿼리 실행
cur.execute("SELECT id, content FROM memo_db ORDER BY id DESC")
rows = cur.fetchall() # 결과 가져오기
# 연결 닫기
cur.close()
conn.close()
# 메모 목록을 리스트로 저장
result = ""
for row in rows:
result += str(row[0]) + ": " + row[1] + "\n" # id와 내용 합쳐서 결과에 추가
# 메모가 없을 때
if result == "":
return "저장된 메모가 없습니다."
return result
app = gr.Interface(
fn = insert_memo,
inputs = gr.Textbox(label="메모를 입력하세요."),
outputs = gr.Textbox(label="메모 목록", interactive=False, value=get_memos())
)
app.launch(debug=True)
참고자료: 컴퓨터의 달인 - Gradio
https://www.youtube.com/watch?v=lSNYUHa9Ya0
출처: AI Hub 교육과정 - WEB+AI (위 내용이 문제가 된다면 댓글에 남겨주세요. 바로 삭제조치하도록 하겠습니다.)
'Programming 개발은 구글로 > 기타 정보' 카테고리의 다른 글
[WEB+AI] 8일차 파이썬 데이터 분석(추가 내용) (0) | 2024.10.24 |
---|---|
[WEB+AI] 8일차 파이썬 데이터 분석 (3) | 2024.10.23 |
[WEB+AI] 5일차 Database(PostgreSQL) (3) | 2024.10.22 |
[WEB+AI] 6일차 복습 (4) | 2024.10.22 |
[WEB+AI] 4일차 Gradio (0) | 2024.10.21 |
댓글