天天看点

pm2 + uvicorn 部署fastapi项目

安装pm2

npm install -g pm2 
// or      

安装uvicorn 和 fastapi

pip install uvicorn 
pip install fastapi      

编写测试脚本 ​

​main.py​

from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel

import uvicorn

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: Optional[bool] = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int):
    return {"item_id": item_id}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id, "item": item}


if __name__ == '__main__':
    uvicorn.run('main:app', host='0.0.0.0', port=5000, log_level="info")      

直接部署

pm2 start main.py --name fastapi -i 4 // 启动4个实例