-
Sanic: FastAPI와 비슷한 파이썬 웹프레임워크컴퓨터/파이썬 2022. 8. 30. 20:35728x90반응형
sanic
소개
쓸만한 웹 프레임워크 중 가장 빠르게 성능이 나온 Sanic
FastAPI, django 등과 비교해서 단점도 있겠지만 속도만으로 봤을 때 나쁘진 않은 것 같다.
설치
pip install sanic
기본 틀
from sanic import Sanic from sanic.response import text app = Sanic("MyHelloWorldApp") @app.get("/") async def hello_world(request): return text("Hello, world.")
사용 후기
FastAPI 써봤다가 오랜만에 파이썬 웹 프레임워크 Sanic을 써보았다.
문법도 다 비슷비슷해서 쉽게 넘어갈 수 있었다.
async MongoDB를 쉽게 쓰려고 Sanic을 위한 Motor 버전을 사용했다.
pip install sanic-motor pymongo[srv]
mongoDB 연결하는 방법
그냥 앱 config.update(), fast 옵션은 알아서 workers를 계산하는 것이다.
# main.py import os from sanic import Sanic app = Sanic("MyAPI") settings = dict( MOTOR_URI=os.environ["MONGODB_URL"], LOGO=None, SANIC_REQUEST_TIMEOUT=500 ) app.config.update(settings) if __name__ == "__main__": app.run(host="0.0.0.0", port=8080, fast=True)
# model.py from sanic_motor import BaseModel class Schedule(BaseModel): __coll__ = "schedule"
Router 관리
Blueprint를 사용한다.
(Blueprint is a logical collection of URLs that perform a specific set of tasks which can be identified by a unique name)
# routes/some.py from sanic import Blueprint some_bp = Blueprint("Tools") ... # main.py from routes.some import some_bp ... if __name__ == "__main__": app.blueprint(some_bp) app.run(host="0.0.0.0", port=8080, fast=True)
참고
728x90'컴퓨터 > 파이썬' 카테고리의 다른 글
Cython: QuickSort code (0) 2023.01.01 Flet: Python Flutter GUI 앱 (0) 2022.08.30 Python: 일정 시간마다 subprocess 실행 중인지 체크하기 (0) 2022.07.13