지식이 늘었다(롱)/웹개발

FastAPI 개발환경 세팅

PurpleGuy101 2024. 12. 17. 15:06

 

https://fastapi.tiangolo.com/ko/tutorial/first-steps/

 

첫걸음 - FastAPI

FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi.tiangolo.com

 

FastAPI는 Document가 매우 친절하다..

 

이글은 개인적으로 노트겸 다시 보려고 적은 개발환경 세팅이므로

 

행여나 다른 경로로 접속하신 분들이 있다면

 

이 공식문서를 보도록 하자..

 

 

0.

pip install fastapi
pip install uvicorn

 

를 통해 FastAPI와 uvicorn 패키지를 설치할 수 있다.

가상환경이랑 관계없는 사람들은 위에 두개만 설치하고

바로 main.py를 작성하러 가주면 된다.

 

from fastapi import FastAPI
app = FastAPI()

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

 

하고

터미널에서 cd로 main.py가 있는 디렉토리로 이동하여

uvicorn main:app 을 실행하면 된다.

탈출은 ctrl+c

 

 

1.

 

프로젝트폴더에 원하는 이름의 폴더를 생성. 

storeapi폴더에 __init__.py 와 main.py 생성.

 

__init__.py는 storeapi라는 폴더를 패키지를 만들어

차후에 from storeapi import some_function 과 같은 형태로 임포트하기 위함

 

그리고 main.py에 다음과 같이 기초 코드를 작성해보자.

 

FastAPI를 사용한 프로젝트의 시작은 

from fastapi import FastAPI

app = FastAPI()

로 시작한다고 보면 된다.

 

 

 

@app.get("/") 

async def root():

    return {"message" : "Hello World"}

 

이 코드의 의미는

 

앱이 클라이언트로부터 "/"라는 엔드포인트EndPoint에 Reqeust를 전송받았을 때,

{"message" : "Hello, world!"} 라는 딕셔너리 형태의 자료형을 Response로 반환하라는 의미이다.

 

Async는 비동기적으로, I/O block 상태에 빠지지 말고 Job을 처리한다는 의미이다.

JS의 프로미스와 Async/Await에서 봤었다.

 

 

 

2.

 

(* 아래의 과정은 Window를 기준으로 설치되었다. Mac이나 Linux는 다른 방식으로 

가상환경을 생성해줘야한다.)

 

패키지의 의존성과 버전관리를 위해서 가상환경을 설정해주자.

venv나 아나콘다같은 툴을 이용해도 되지만

 

여기서는 pyenv를 이용해서 가상환경을 구축해주자.

(https://github.com/pyenv-win/pyenv-win)

다른 가상환경과 다르게 여러가지 파이썬 버젼을 설치할 수 있다.

 

Github의 Installation에서 PowerShell을 사용한 설치방법이 가장 편한 방법

 

 

UnauthorizedAccess error가 발생해서 관리자권한으로 실행후 실행규칙 변경을 수행했다.

 

 

그러면 설치완료

 

 

 

3.

 

(* 아래의 과정은 Window를 기준으로 설치되었다. Mac이나 Linux는 다른 방식으로 

가상환경을 생성해줘야한다.)

 

해당 프로젝트에서는 python 3.11버젼을 사용하고 싶다.

 

3.11버젼이 설치되어있지 않다면 터미널에서 아래의 코드를 입력해 파이썬을 설치해주고,

pyenv install 3.11

 

이후 pyenv local 3.11 을 해당 디렉토리를 루트로하는 터미널에서 입력해주자.

pyenv local 3.11

 

 

 

왼쪽에 .python-version이 생겼다.

 

pyenv exec python -V

 

터미널에서 pyenv exec python -V 를 입력해보면

Python 3.11.x 을 사용한다고 나올 것이다.

 

 

 

 

4.

 

 

(* 아래의 과정은 Window를 기준으로 설치되었다. Mac이나 Linux는 다른 방식으로 

가상환경을 생성해줘야한다.)

 

pyenv exec python -m venv .venv

 

위의 코드를 입력하여 가상환경을 만들어주자.

.venv라는 이름의 폴더를 만들어 줄 것인데, 

 

앞에 . 이 붙는 이유는 이 가상환경과 관련된 Configuration 폴더는

우리가 직접 열어보고 수정할 폴더는 아니기에 hidden 속성을 가지게 만들기 위해서이다.

 

 

.venv/Scripts/Activate.ps1

 

그리고 생성된 가상환경을 실행해준다.

.venv 폴더를 잘 뒤져보면 Activate.ps1이 있는데

이 파일을 실행시킴으로써 해당 가상환경에서 작업할 수 있다.

 

 

 

 

5.

 

이렇게 가상환경 구축이 완료되었으면

관련 패키지(Dependency)를 설치해주면 된다.

 

폴더에 requirements.txt 파일을 생성해주고

필요한 패키지들을 입력해준 다음

 

pip install -r requirements.txt

 

를 실행해주면

 

 

프로젝트에 필요한 패키지들을 설치할 수 있다.

 

 

6.

 

이렇게 가상환경 설치가 완료되었으면,

VSC하단에 있는 Interpreter의 버전을 클릭해서

Select Interpreter에서, 사용할 인터프리터를 .venv\Scripts\python.exe로 설정해주자.

 

 

 

 

정상적으로 개발환경세팅이 완료되었다.

 

7.

 

(선택)

깃을 사용하는 경우, 로컬에 저장된 해당 프로젝트가

자동으로 깃레포지토리에 올라가게되는 경우가 종종있다.

이걸 원하지 않을 경우.

 

프로젝트 폴더에

.gitignore 파일을 만들어서

 

깃 레포지토리에 이 프로젝트가 연결되지 않도록 설정해주자.

 

프로젝트에 따라서 제외해줘야 하는 방식이 여러가지 인데

(https://www.gitignore.io/)

 

을 사용해서 잘 세팅하도록 하자.

 

.DS_Store
*.pyc
__pycache__
.env
*.db
.venv
.vscode/
*.png

 

 

8.

 

이제 세팅이 완료되었으니, 공식문서를 보고 튜토리얼을 따라가도록 하자.

uvicorn을 이용해 NodeJS처럼 서버를 실행하고

컨트롤+C키로 탈출할 수 있다.

 

 

 

https://fastapi.tiangolo.com/ko/tutorial/first-steps/

 

첫걸음 - FastAPI

FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi.tiangolo.com