创建基础服务
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI() # 实例化app
# 创建接口函数
@app.get('/')
def hellow_world():
return {'hello_world'}
请求传参
# 创建校验类用来校验传参
class Hellow(BaseModel):
# 必填字符串类型
hallow: str
# 选填布尔类型,有默认值
world: bool = None
# 获取路径传参
@app.get('/{parameter}')
# 所有的查询参数(/?queryParameter=dd)
def hellow_world(parameter: str, queryParameter: str = None):
return {'路径参数': parameter, '查询参数': queryParameter}
# 获取路径传参
@app.put('/{parameter}')
# 所有的查询参数(/?queryParameter=dd)
def hellow_world(parameter: str, queryParameter: Hellow):
return {'路径参数': parameter, '查询参数': queryParameter.hallow}
# 如果想使用异步api在函数前添加async:
# 获取路径传参
@app.get('/{parameter}')
# 所有的查询参数(/?queryParameter=dd)
async def hellow_world(parameter: str, queryParameter: str = None):
return {'路径参数': parameter, '查询参数': queryParameter}
交互文档
http://127.0.0.1:8000/docs
http://127.0.0.1:8000/redoc
启动服务
命令行启动
# 启动命令:uvicorn 文件名:实例名
# 修改文件自动重启命令
# 启动命令:uvicorn hello_world:app --reload
配置pycharm启动服务
脚本文件启动
# 导入 uvicorn
import uvicorn
"""
app 程序
"""
if __name__ == '__main__':
"""
reload:修改文件自动重启。
debug:debug模式。
workers:设置进程数量。
"""
uvicorn.run('run:app', host='0.0.0.0', port=8000, reload=True, debug=True, workers=1)