티스토리 뷰

1. streamlit과 fastapi 연결

# 파일 구조

fe_main.py # 터미널1에서 실행: streamlit run fe_main.py
be_main.py # 터미널2에서 실행: uvicorn be_main:app --reload

1) fe_main.py

import streamlit as st
import requests

st.title('안녕하세요😊 API 연습장 입니다!')

st.write("오늘의 행운의 숫자를 확인해 보세요!")

if st.button("행운의 숫자 조회하기"):
    response = requests.get(f"http://127.0.0.1:8000/number")
    if response.status_code == 200:
        rand_num = response.json().get("rand_num")
        st.write(f"오늘의 행운의 숫자는 ~~!! {rand_num} 입니다")

    else:
        st.error("FastAPI 호출 실패")

 

2) be_main.py

from fastapi import FastAPI
import numpy as np

app = FastAPI()

@app.get("/number")
def get_luck_num():
    rand_num = int(np.random.randint(1,101))
    return {"rand_num":rand_num}

 

2. requests

- HTTP요청을 쉽게 처리할 수 있도록 설계된 라이브러리

1) HTTP 요청 메서드

메서드 의미 예시
get 서버에서 데이터를 조회 response = requests.get("https://example.com/api")
post 데이터를 서버로 보냄 data = {"key": "value"}
response = requests.post("https://example.com/api", json=data)
put 서버에 데이터를 업데이트 url = "https://example.com/api/resource/1"
data = { "name": "Updated Name", "description": "Updated Description", "status": "active" }
response = requests.put(url, json=data)
delete 서버에서 데이터를 삭제 response = requests.delete("https://example.com/api/resource")
patch 서버 데이터의 일부를 수정 url = "https://example.com/api/resource/1"
data = { "status": "inactive" # 리소스의 상태만 수정 }
response = requests.patch(url, json=data)

 

2) 주요 매개변수

매개변수 의미 예시
params url에 쿼리 매개변수를 추가 response = requests.get("https://example.com/api",
params={"key": "value"})
# 결과: https://example.com/api?key=value
data 폼 데이터를 전송 response = requests.post("https://example.com/api",
 data={"key": "value"})
json json 데이터를 전송 response = requests.post("https://example.com/api", 
json={"key": "value"})
header 요청에 사용자 정의 헤더 추가 headers = {"Authorization": "Bearer <token>"}
response = requests.get("https://example.com/api", headers=headers)
files 파일 업로드할 때 사용 files = {"file": open("example.txt", "rb")}
response = requests.post("https://example.com/upload", files=files)

 

3) 응답 처리

속성 의미
response.status_code HTTP 응답 코드를 반환 (예: 200, 404)
response.text 응답의 원시 텍스트를 반환
response.json() 응답을 JSON으로 파싱
response.content 바이너리 데이터를 반환 (예: 이미지, 파일 다운로드)
response.headers 응답 헤더 정보를 반환
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함