http://127.0.0.1:8888/docs
from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional
import json
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
def MyFunc(info):
return info
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.post("/getinfo2")
async def getinfo2(item:Item):
print(item)
print(item.name)
return item
@app.post("/strPost")
async def strPost(strinfo:str):
print(strinfo)
return strinfo
@app.post("/jsonPost")
async def jsonPost(strjson: dict):
print(strjson)
print(strjson['arr'])
return MyFunc(strjson['arr'])
if __name__ == '__main__':
import uvicorn
uvicorn.run(app=app, host="127.0.0.1", port=8888)
poststr
http://127.0.0.1:8888/poststr?strinfo=hiapi
视频路径:https://www.bilibili.com/video/BV1oM411k7R4/?spm_id_from=333.337.search-card.all.click&vd_source=1a32643ad0ad9a465bc6d9b0dcf61a96
代码整理:
#安装fastapi --1. pip install fastapi[all]
# 2. pip install fastapi and pip install uvicorn(python服务器)
#fastapi支持原生的异步编程
#https://www.bilibili.com/video/BV1oM411k7R4/?spm_id_from=333.337.search-card.all.click&vd_source=1a32643ad0ad9a465bc6d9b0dcf61a96
import uvicorn
from fastapi import FastAPI,Header,Body
from fastapi.responses import JSONResponse
app = FastAPI()
#首页 http://127.0.0.1:8088
@app.get("/")
def index():
'''首页返回信息'''
return "Hello,FastAPI..."
#get示例 http://127.0.0.1:8088/jsonobj/gg
@app.get("/jsonobj/{nameid}")
def jsonobj(nameid):
'''获取json对象测试'''
return {'msg':'json object','code':250,'name':nameid}
#调用示例:http://127.0.0.1:8088/listobj?nid=hh
@app.get("/listobj")
def listobj(nid):
'''获取list对象测试'''
return ['python','java','Go',nid]
#获取header中的参数,定制返回信息
@app.get("/headerInfo")
def headerInfo(token=Header(None)):
'''获取Header中参数测试,定制返回信息'''
return JSONResponse(content={'tokeninfo':token},
status_code=249,
headers={'define':'g2'})
return
#post示例--接收Row(Json)
@app.post("/postData")
def postData(inData=Body(None)):
return {'resData':inData}
#既支持post也支持get
@app.api_route("/login", methods=("GET","POST"))
def login():
return {'msg':'login in...'}
#在浏览器中显示所有接口:http://127.0.0.1:8088/docs or http://127.0.0.1:8088/redoc
if __name__ == '__main__':
uvicorn.run(app='fastapiTest:app',port=8088,reload=True)
#命令行运行:uvicorn fastapiTest:app --reload (代码更改服务会重新启动)