速度超快,堪比Go接口

安装

安装模块 + 安装启动模块

pip install fastapi
pip install uvicorn

简单版

from fastapi import FastAPI

app = FastAPI()  # 必须实例化该类,启动的时候调用


@app.get('/')
def index():
    return {'message': '你已经正确创建 FastApi 服务!'}
    
if __name__ == '__main__':
    file = os.path.split(__file__)[-1].split(".")[0]
    os.system('uvicorn '+file+':app --reload')

启动

uvicorn main:app --reload
  • uvicorn 固定启动命令
  • main 是你的py文件名
  • app app = FastAPI() 实例化对象名
  • --reload 修改了代码以后立即生效

访问端口 http://127.0.0.1:8000

Get 请求

@app.get('/query/{uid}')
def query(uid: int):
    msg = f'你查询的 uid 为:{uid}'
    return {'success': True, 'msg': msg}

注意如果 uid 必须是 int类型,那么直接用 uid: int 就好,模块会自动判断

Post 请求

post 请求中的参数类型限制,就需要用到继承类修改 from pydantic import BaseModel

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class People(BaseModel):  # 必须继承
    name: str
    age: int
    address: str
    salary: float


@app.post('/insert')
def insert(people: People):
    age_after_10_years = people.age + 10
    msg = f'此人名字叫做:{people.name},十年后此人年龄:{age_after_10_years}'
    return {'success': True, 'msg': msg}

if __name__ == '__main__':
    file = os.path.split(__file__)[-1].split(".")[0]
    os.system('uvicorn '+file+':app --reload')

快速文档

  • http://127.0.0.1:8000/docs
  • http://127.0.0.1:8000/redoc

服务器部署

利用 uvicorn

服务器运行

绑定机器的80(http)端口

uvicorn main:app --host 0.0.0.0 --port 80

挂起运行

nohup uvicorn main:app --host 0.0.0.0 --port 80  >/dev/null 2>&1 &

启动

nohup uvicorn main:app >/dev/null 2>&1 &

写出日志

Last modification:August 13th, 2020 at 05:32 pm
如果觉得我的文章对你有用,请随意赞赏