728x90

1. 구성 계획


개발환경은 Window에서 진행되고 Backend는 python fastapi Frontend는 nextjs를 사용해볼 계획이다. 배포까지 하면 좋겠지만 추후로 미루기로 하자.

IDE는 Pycharm을 쓸예정이다. (VSCode를 써보 되긴하지만, Jetbrain을 결제해서 쓰고 있어서 Pycharm을 쓰기로 결정 Front도 WebStorm을 쓸 예정이다.

 

 

2. 개발환경


 

OS : Window 10

Python : 3.10

으로 anaconda로 가상환경을 구성하지 않고 venv로 구성을 한다.

 

1. 프로젝트 만들기


 

 

Pycharm 실행 후 New Project를 선택하면 Python관련 프로젝트에 FastAPI가 있지만 Pure Python으로 진행한다.

프로젝트 이름은 commonStandartTerm으로 만들고 Location을 지정해준다.

 

 

다음으로 가상환경을 만들어 준다. Python3.10이 설치되어 있지않다면

Base Python에서 아래 화살표를 클릭하면 download and install 할 수 있다.

 

 

Location을 적절한 곳으로 잡아주고 Create를 해준다.

 

 

프로젝트가 생성되었다.

아직은 아무것도 없다.

 

먼저 필요한 패키지들을 설치해 보자.

 

2. 패키지 설치


패키지의 경우 프로젝트를 진행하면서 추가적으로 설치하겠다. 기본적으로 설치할 패키지는 FastAPI, unvicorn,pandas,pytest 이다.

 

터미널에 pip 로 설치할 수 있지만 requirements.txt 파일을 생성해 Pycharm 기능으로 설치해 보자.

 

requirements.txt파일을 생성 후 아래와 같이 입력한다.

fastapi==0.110.0
uvicorn[standard]==0.28.0
pandas==2.2.1
pytest==8.1.1

 

입력 후 저장하면 python에 메세지가 나타나고 설치 할 것인지 물어본다.

 

install requirements 를 클릭하면 패키지들이 설치된다.

 

2. Fast API 실행해보기


https://fastapi.tiangolo.com/ko/#_5

 

FastAPI 사이트에서 제공하는 예제 코드를 main.py에 넣고, 실행해보자.

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@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}
uvicorn main:app --reload

 

 

port 8000으로 접속하면 Hello World를 볼 수 있다.

 

#. Pycharm 실행 화경 만들기

터미널에서 

uvicorn main:app --reload

으로 실행할 수도 있지만, IDE를 사용하고 있으니까 실행환경을 수정해서 Pycharm에서 Run 할 수 있게 해보자.

 

PyCharm 우측 상단에 Run 버튼 옆에 Current File을 클릭하면 드롭 박스가 열리고 Edit Configurations 를 통해 실행 환경을 구성할 수 있다.

 

 

+ 버튼을 누르면 실행환경을 구성할 수 있는 목록이 나타나는데 FastAPI를 선택하자

 

 

 

main.py 위치를 정해주고 apply 한다음 Run 해보자.

 

 

Error : LookupError: unknown encoding: x-windows-949


실행 시 Encoding 문제가 발생한다면, 프로젝트 세팅에서 encoding을 바꿔준다.

 

1. settings > Editor > File Encodings > Project Encoding 을 UTF-8

 

2. settings > Editor > Console > Default Encoding 을 UTF-8

 

 

바꾼 후 다시 실행해보면

 

 

정상 적으로 실행되고 다시 접속하면

이전과 같은 화면을 볼 수 있다.

728x90

+ Recent posts