티스토리 뷰
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 | 응답 헤더 정보를 반환 |
반응형
'AI > MLOps' 카테고리의 다른 글
[MLOps] Dockerfile 이미지 만들기 (0) | 2024.12.12 |
---|---|
[MLOps] FastAPI - BaseModel, Field, HTTPException, Depends (0) | 2024.12.11 |
[MLOps] 학습이 끝난 ML 모델을 저장하는 방법 (0) | 2024.12.02 |
[MLOps] FastAPI, Uvicorn과 ASGI웹서버 (1) | 2024.11.24 |
[MLOps] Docker Desktop 실행 안될 때(MySQL 포트 변경, docker desktop 초기화) (1) | 2024.11.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 빅데이터 분석기사
- 다이어트
- 실기
- Ai
- llm
- Python
- 뉴스
- 운동
- opic
- 아침
- 기초
- 30분
- 오픽
- 아침운동
- 오블완
- 영어회화
- 루틴
- 스크랩
- ChatGPT
- 프로그래머스
- 고득점 Kit
- 경제
- 갓생
- SQL
- 티스토리챌린지
- 습관
- C언어
- IH
- 미라클모닝
- 줄넘기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함