文章目录
一、安装命令
pip install fastapi uvicorn
二、模板
创建 main.py 文件,内容如下
from pydantic import BaseModel
from fastapi import FastAPI
from typing import Optional
# 创建服务对象
app = FastAPI()
# get --------------------------------
@app.get("/")
async def hello():
return {
"message": "Hello World"}
# ------------------------------------
# post ------------------------------------------------------
class Publication(BaseModel):
title: Optional[str] = None # 接收字符串类型,没有值就默认为None
abstract: Optional[str] = None # 接收字符串类型,没有值就默认为None
@app.post("/findPublication")
async def findPublication(pc: Publication):
return {
"message": "{}-{}".format(pc.title, pc.abstract)}
# -----------------------------------------------------------
if __name__ == '__main__':
import uvicorn
uvicorn.run(app="main:app", host="127.0.0.1", port=8000, reload=True)
三、启动命令
直接右键启动就行,或者使用如下命令启动
uvicorn main:app --host 0.0.0.0 --port 80 --reload
ps:
- uvicorn:是一个基于asyncio开发的一个轻量级高效的web服务器框架
- main:启动服务的py文件名
- app:服务对象名
- –host:ip地址
- –port:端口
- –reload:代码修改的时候自动重启服务,仅在开发时使用,上线后不要带这个参数,会降低性能
四、访问测试
1.访问服务
127.0.0.1:8000
2.访问API文档
-
127.0.0.1:8000/docs【Swagger UI 提供的api文档】
-
127.0.0.1:8000/redoc【ReDoc 提供的api文档】
五、参数方法详解
1.路径参数
<1>代码
@app.get("/items/{item_id}")
async def read_item(item_id):
return {
"item_id": item_id}
<2>调用方法
ip:port/items/3
2.指定数据类型的路径参数
<1>代码
@app.get("/items/{item_id}")
async def read_item(item_id: int): # 以整数类型接收
return {
"item_id": item_id}
@app.get("/users/{user_id}")
async def read_user(user_id: str): # 以字符串类型接收
return {
"user_id": user_id