1. Fast API
FastAPI는 Python 기반의 웹 프레임워크로, 주로 API를 빠르게 개발하기 위해 설계되었습니다.
FastAPI는 강력한 타입 힌팅(Type Hints)을 활용하여 개발자에게 코드 작성의 안정성과 가독성을 제공합니다.
https://fastapi.tiangolo.com/ko/
※ 타입 힌팅(Type Hints)
타입 힌팅(Type Hints)은 프로그래밍 언어에서 변수, 함수 매개변수, 함수 반환값 등에
대한 데이터 타입 정보를 코드에 명시적으로 제공하는 기술입니다. Python 3.5 이상에서
도입된 기능으로, 코드의 가독성을 높이고 프로그램의 안정성을 강화하는 데 도움이 됩니다.
FastAPI는 실시간 및 고성능 API를 구축하는 데 적합한 현대적이고 빠른 프레임워크이고,
Django는 복잡한 웹 애플리케이션을 구축하는 데 적합한 성숙한 프레임워크이며,
Flask는 소규모 웹 애플리케이션 및 프로토타입을 구축하는 데
적합한 가볍고 유연한 프레임워크입니다. . 그들 사이의 선택은 개발 팀의 기술과
경험뿐만 아니라 프로젝트의 특정 요구 사항과 요구 사항에 따라 다릅니다.
2. Streamlit
- https://streamlit.io/
- 파이썬으로 데이터 분석을 위한 웹앱 등을 쉽게 개발할 수 있게 도와주는 라이브러리
- 간단한 코드로 웹 애플리케이션을 만들고 빠르게 프로토타입을 구축하고 시각적으로 공유하기 위해 사용
- gradio, voila, binder 등과 유사
설치
pip install streamlit
설치 확인 및 데모 확인
streamlit hello
실행
streamlit run app.py
# pip install fastapi
# setting -> 프로젝트 찾아서 + 버튼, 검색 install
from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional
app = FastAPI()
users = {
0: {"userid": "apple", "name": "김사과"},
1: {"userid": "banana", "name": "반하나"},
2: {"userid": "orange", "name": "오렌지"},
3: {"userid": "cherry", "name": "채리"}
}
# http://127.0.0.1:8000/
@app.get("/")
async def root():
return {"message" : "Hello FastAPI!"}
# http://127.0.0.1:8000/users/1
@app.get("/users/{id}")
async def find_user(id: int):
user = users[id]
return user
# http://127.0.0.1:8000/users/1/name
# http://127.0.0.1:8000/users/1/userid
@app.get("/users/{id}/{key}")
async def find_user_by_key(id: int, key: str):
user = users[id][key]
return user
class User(BaseModel):
userid: str
name: str
# http://127.0.0.1:8000/users/0
@app.post("/users/{id}")
async def create_user(id: int, user: User):
if id in users:
return {"error": "이미 존재하는 키"}
users[id] = user.__dict__
return {"success": "ok"}
class UserForUpdate(BaseModel):
userid: Optional[str]
name: Optional[str]
# 수정
# id를 입력받아 id가 존재하지 않으면 에러
# userid가 존재하면 userid를 변경
# name이 존재하면 name을 변경
@app.put("/users/{id}")
async def update_user(id: int, user: UserForUpdate):
if id not in users:
return {"error": "존재하지 않는 id"}
if user.userid:
users[id]['userid']= user.userid
if user.name:
users[id]['name']= user.name
return {"success": "ok"}
# 삭제
# id를 입력받아 id가 존재하면 삭제
@app.delete("/users/{id}")
async def delete_user(id: int):
users.pop(id)
return {"success": "ok"}
'PyCharm' 카테고리의 다른 글
PyCharm 광고문구 서비스앱(2024-06-05) (0) | 2024.06.05 |
---|---|
PyCharm gpt번역앱 (2024-06-04) (0) | 2024.06.04 |