반응형
SMALL
■ 본 글은 콘다와 파이참으로 진행
■ 본인이 사용할 가상환경 세팅 및 FastApi, Uvicorn 설치
1. 콘다에서 본인이 사용할 가상환경 만들기
■ 콘다 GUI 에 Environments 메뉴에 들어가 가상환경을 만들어준다
반응형
2. 맥 터미널에서 가상환경 실행 및 FastApi, Uvicorn 라이브러리 설치
■ 터미널에서 가상환경 실행
conda activate 본인 가상환경명
#Mac 커맨드 환경
kimkunhwi@gimgeonhwiui-noteubug ~ % conda activate vir_base
(vir_base) kimkunhwi@gimgeonhwiui-noteubug ~ %
■ Fast Api 설치
pip install fastapi
■ Uvicorn 설치
- Uvicorn 은 FastApi 용 웹서버라 생각하면 됌
pip install "uvicorn[standard]"
SMALL
■ 파이참에서 인터프러터 설정 및 main.py 실행해보기
1. 본인이 원하는 경로에 main.py 만들기
■ 본인이 원하는 경로에 가서 아래 명령어 실행
#필자 경로 : /Users/kimkunhwi/Documents/Projects/python_work/fast_api_test
cat > main.py
■ ls 명령어를 통해 파일 생성 확인
(vir_base) kimkunhwi@gimgeonhwiui-noteubug fast_api_test % Ls
__pycache__ main.py
2 파이참 실행 후 인터프러터 설정
파이참 인터프러터 설정은 콘다 GUI 로 파이참을 실행해야 메뉴바가 뜸
■ 파이참 실행 후 상단바 settings 들어가기
■ 프로젝트에 python interperter 에서 add interperter 누르기
■ Add local interperter 선택
■ Conda Environment 에서 본인의 가상환경 선택하기
- ok 하면 자동 세팅됌
3. main.py 테스트 해보기
본인이 아까 만든 main.py가 있느 폴더에서 진행
■ 아래 코드를 main.py 에 복사, 붙여넣기
from typing import Union
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name:str
price:float
is_offer: Union[bool, None] = None
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id:int, q:Union[str, None] = None):
return {"item_id": item_id, "q": q}
@app.put('/items/{item_id}')
def update_item(item_id:int, item:Item):
return {"item_id": item_id, "item_name": item.name, "item_price": item.price}
■ 터미널에서 아래 명령어로 main.py 실행
- 각 Url 들어가서 테스트 해보기
main.py 가 있는 폴더와 본인이 세팅한 가상환경인 상태에서 터미널에 아래 명령어 입력
uvicorn main:app --reload
통신 확인 Url
http://127.0.0.1:8000/items/5?q=somequery
#Output
{"item_id": 5, "q": "somequery"}
스웨거 Docs Url
http://127.0.0.1:8000/docs
대체 docs Url
http://127.0.0.1:8000/redoc
LIST
'Programming > python' 카테고리의 다른 글
[ Python ] FastApi 라우터 설정 및 범죄데이터 json 으로 return 하기 (0) | 2024.05.23 |
---|---|
[ Python ] pandas, pdfplumber 를 사용한 범죄통계 PDF 데이터 전처리 (0) | 2024.05.22 |
[ Python ] Pandas를 통해 데이터 정렬 및 메서드 사용해보기 (0) | 2024.05.19 |
[ Python ] 불러온 데이터 csv 로 임포트 해보기 (0) | 2024.05.19 |
[ Python ] requests, beautifulSoup 을 통하여 웹 크롤링 해보기 (0) | 2024.05.16 |