fastaip使用整理

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 (代码更改服务会重新启动)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力减肥的小胖子5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值