Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- phpredis
- For
- fastapi
- NCP
- 블레이드 템플릿
- docker
- nginx
- React
- Backbone.js
- Redux
- Go
- Switch
- php
- nodejs
- Node
- rabbitmq
- laravel
- Babel
- webpack
- linux
- mariadb
- Machine Learning
- 기초 수학
- javascript
- Redis
- SQL
- python
- AWS
- deep learning
- CentOS
Archives
- Today
- Total
개발일기
Python - FastAPI 프레임워크란? 본문
728x90
반응형
FastAPI란?
파이썬 3.6 버전부터 제공되는 트랜디하고 높은 성능을 가진 파이썬 프레임워크. FastAPI라는 이름처럼 빠르게 개발을 진행할 수 있다. 별도의 구성이나 설치의 필요없이 바로 사용할 수 있는 비동기적인 특성을 가진 프레임워크이기 때문이다.
- 파이썬 3.6버전부터 제공되는 트렌디하고 높은 성능을 가진 파이썬 프레임워크
- FastAPI라는 이름처럼 빠르게 개발 진행 가능
- 별도의 구성이나 설치 필요없이 바로 사용 가능
- 비동기적인 특성
- 다른 파이썬 프레임워크와 비교했을 때 학습하여 적용하는 난이도가 낮음
- Node.js와 비교될만큼 가볍고 빠른 프레임워크
- 비교적 최근에 발표된 프레임워크이기 때문에 관련 자료가 부족
FastAPI 설치
pip3 install fastapi
# FastAPI 사용을 위한 설치
pip3 install uvicorn
# 파이썬 서버실행기인 uvicorn 설치
# 순수 파이썬으로 작성된 uvicorn이 설치된다
pip3 install 'uvicorn[standard]'
# Python과 C / C++ 로 작성된 uvicorn이 설치된다
uvicorn을 통해 파이썬 서버가 실행되기에 필수적으로 설치해줘야 한다.
FastAPI모듈을 가져온 후, URL이 '/'와 '/something'일 때 실행할 함수에 대해 간단하게 정의한다.
# main.py
from fastapi import FastAPI # FastAPI 모듈 가져오기
app = FastAPI() # 객체 생성
@app.get("/") # Route Path
def test_index():
# Json 타입으로 값 반환
return {
"Python": "Framework",
}
@app.get("/something")
def something():
return {
"Something": "Page",
}
uvicorn명령어를 통해 파이썬 서버를 실행시킨다. 해당 명령을 실행할 때, main.py 파일이 존재하는 경로에서 해당 명령어를 실행하여야 한다.
uvicorn main:app --reload --port 8000
# uvicorn을 통해 실행시킨다
- uvicorn : 파이썬 서버 실행을 위해 필요한 기본 명령어
- main : 실행할 초기 파이썬 파일 이름. 위의 소스코드를 test.py 파일에 작성하였을 경우, test:app으로 변경하여 실행
- app : FastAPI() 모듈을 할당한 객체명을 뜻한다. practice = FastAPI() 일 경우, main.practice로 변경하여 실행
- reload : 소스코드가 변경되었을 때, 서버를 자동으로 재시작해주는 옵션이다. 개발단계일 때 유용하게 사용가능
- port : 해당 포트번호를 통해 서버를 실행시켜주는 옵션. 포트 옵션을 생략시 자동으로 8000번 포트가 할당
ex) 실행파일명이 cake.py, FastAPI() 모듈이 할당된 객체명이 serum일 경우 ( serum = FastAPI() )
uvicorn cake:serum --reload
# 파일명과 객체명을 변경하여 실행
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [3185] using watchgod
INFO: Started server process [3187]
INFO: Waiting for application startup.
INFO: Application startup complete.
...
...
정상적으로 실행됬을 경우 터미널에서 위의 내용을 확인할 수 있다.
localhost:8000
{"Python":"Framework"}
localhost:8000/something
{"Something":"Page"}
라우트 url을 통해 결과값을 확인하면 반환된 값들이 JSON 형식으로 나타나는 것을 확인할 수 있다.
FastAPI 부가적인 문서기능
FastAPI는 작성된 API들을 웹 상에서 바로 테스트할 수 있는 기능을 제공한다. /docs url을 통해 확인할 수 있다.
redoc을 통해 api문서를 확인할 수 있다.
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python - Redis 연결 ( FastAPI ) (0) | 2021.12.07 |
---|---|
Python - FastAPI DB Connection ( SQLAlchemy ) (0) | 2021.12.03 |
Python - Type Hinting (0) | 2021.12.01 |
Python - for 반복문과 enumerate 함수 (0) | 2021.11.26 |
Python - 함수정의 (0) | 2021.11.25 |
Comments