사용 환경 : mac OS
Python3 Mac OS에 설치
Mac에는 기본적으로 파이썬2가 설치되어 있다. 버전을 알 수 있는 방법은 터미널에서
python -V
명령어로 현재 설치된 파이썬의 버전을 알 수 있다.
파이썬은 2버전과 3버전이 많이 다르기에 3버전을 설치하도록 하자.
https://www.python.org/downloads/
위 사이트로 들어가면 현재 OS에 맞는 다운로드 버전을 제시하니까
위 버튼을 눌러서 다운로드를 받자.
설치가 완료되면 파이썬3의 버전을 확인하기 위해
python3 -V
의 명령어를 입력하여 설치된 버전을 확인하자.
python 필수 패키지
- pip3 install wheel
- pip3 install numpy
- pip3 install scipy
- pip3 install matplotlib
- pip3 install pandas
- pip3 install h5py
- pip3 install spyder
API 개발을 위한 FAST-API 설치
https://fastapi.tiangolo.com/ko/
파이썬으로 API 개발을 위해 나온 고성능 프레임워크이다.
FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API로 빌드하기 위한 웹 프레임워크입니다.
NodeJS 및 Go와 대등할 정도로 매우 높은 성능을 자랑하고, 빠른 코드를 작성할 수 있으며, 버그가 적고, 직관적이며, 사용하기 귑고, 코드의 중복을 최소화하는 기능을 제공한다고 한다.
설치
pip3 install fastapi
pip3 install uvicorn
먼저 fastapi를 설치한 다음 api를 구동할 서버를 설치한다.
파이썬 의존성관리
→ 자바스크립트의 npm, yarn이라고 생각하면 편하다.
→ node.js로 웹 어플리케이션을 만들 때 package.json과 같은 파일을 만드는 것
peotry 설치
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
터미널을 열어서 위 주소를 쳐서 설치를 완료한 후 peotry init
이라고 친 다음 설정할목이 뜨는데 기호에 맞게 설정하면 pyproject.toml
파일이 생긴다. (package.json)과 같은 파일
poetry add fastapi uvicorn
💡 혹시 poetry 명령어가 없다고 하면 터미널을 껐다가 키면 실행이 된다.
설치를 하면 poetry.lock 파일이 생기는데 npm의 package.lock.json과 같이 의존성을 설치할 수 있도록 보장해주는 파일을 생성한다.
from typing import Optional
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: Optional[str] = None):
return {"item_id": item_id, "q": q}
main.py에 해당하는 파일을 만들고, 서버를 실행한다.
main : main.py의 main을 의미
app : main.py안에 있는 app=FastAPI()
—reload : 코드 변경시 자동으로 저장되어 재시작
—host : 모든 접근이 가능하게 하려면 0.0.0.0을 입력
—port : 접속 원하는 포트를 지정해준다
http://localhost:8000/ 로 접속하면 아래와 같은 return을 확인할 수 있다.
'study > TIL🐥' 카테고리의 다른 글
[DB] Partition 사용 이유 (0) | 2021.07.07 |
---|---|
[Git] 잘못 올라간 파일/폴더 지우기 (0) | 2021.06.08 |
SQL/NoSQL/DynamoDB (0) | 2021.04.28 |
[javascript] 하나의 form 안에 두개 이상의 submit이 있는 경우 (0) | 2021.04.26 |
OAuth2란? (0) | 2021.04.26 |