[FastAPI] 개요 및 설치

상준·2023년 8월 21일

FastAPI

목록 보기
1/3
post-thumbnail
  • tiangolo(세바스찬 라미레즈)
    Datum Consultants의 CTO
    FastAPI를 만든 프로그래머

FastAPI 사이트

FastAPI

프레임워크, 고성능, 빠르고 쉬움

설치

  1. 파이썬 설치
  2. 파이참 (PyCharm Community) 설치
  3. DB Browser for SQLite 설치하기
  4. 가상 환경에 디렉터리 만들기
  5. 작업 폴더 에디터로 열고 main.py 생성
  • 터미널
    pip install fastapi // fastAPI 설치하기
    python -m pip install --upgrade pip // 핍(pip) 최신 버전으로 설치하기
    pip install "uvicorn[standard]" // 실시간 미리보기를 보기 위해서 설치

Svelte 설치하기

npm create vite@latest fronted -- --template svelte
cd fronted
npm install

VSCode 확장에서 Svelte for VS Code 설치하기

pip install sqlalchemy // ORM 라이브러리 중 SQLAlchemy 라이브러리 설치
pip install alembic // SQLAlchemy의 alembic 설치
alembic init migrations // alembic 초기화 작업 진행

  • main.py 파일
#서버를 만들기 위한 세팅
from fastapi import FastAPI
app = FastAPI() # FastAPI "인스턴스" 생성

#html 파일 전송
from fastapi.responses import FileResponse 

# 데이터를 받기 위해 모델 생성
from pydantic import BaseModel

class Model(BaseModel):
	name :str # 문자를 받음
    phone :int # 숫자

@app.get("/") # 메인페이지
def read_root():
    return FileResponse('index.html') # 접속시 html 파일 전송
    
@app.get("/items") #  /items 접속시 
def read_item():
    return {"Hello : World"} # hello World 데이터 보냄
    
@app.post("/send") # 유저에게 데이터 받기
def get_data(data : Model): # 보낸 데이터 담겨있음
	return '전송완료'

async/await 키워드로 비동기처리기능 사용
async def 사용

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"Hello": "World"}

HTTP 메소드

  • get: 데이터를 읽기 위해
  • post: 데이터를 생성하기 위해
  • PUT: 데이터를 업데이트하기 위해
  • DELETE: 데이터를 삭제하기 위해
OpenAPI에서 각 HTTP 메소드들을 "동작"이라 부름

데코레이터
@app.something

아래 있는 함수를 받고 그걸 이용해서 무언가함
데코레이터는 FastAPI에게 아래 함수가 경로 /에 해당하는 동작하라고 알려줌
  • app.put()
  • app.delete()

경로: /
동작: get
함수: '데코레이터' 아래에 있는 것 (@app.get("/") 아래)

실행

  • 터미널
    uvicorn main:app --reload
 main: main.py 파일 (파이썬 "모듈")
 --reload: 코드가 변경된 후 서버 재시작하기
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [18240]
INFO:     Started server process [23836]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

/docs 접속시 서버기능들을 문서 자동으로 만들어줌 // Swagger
/redoc 접속시 다른 버전으로 api 문서 제공, 읽기 전용
/openapi.json // 기본적인 api


스키마

무언가의 정의 또는 설명

API 스키마

API 경로, 가능한 매개변수 등을 포함

데이터 스키마

JSON 속성, 가지고 있는 데이터 타입 등을 뜻함

OpenAPI

OpenAPI는 API에 대한 API 스키마를 정의함

__pyache__

  • Python3를 컴파일하여 실행할 수 있더록 바이트코드를 포함하는 폴더
  • 내부에는 .pyc 파일이 생성되어 있음
  • 바이트코드이므로 메모장으로 열면 알아볼 수 없음
  • 다음에 실행할 때 pyc 파일이 있으면 즉시 실행되므로 프로그램이 조금 더 빨리 실행될 수 있음
  • 지워도 컴파일 시에 자동으로 생성됨
profile
컴공생 공부

0개의 댓글