Python入门第06篇(FastApi、uvicorn)

目录

前言

pip安装相关包

webapi开发

get方法

webapi在线文档

post方法


前言

FastApi用来开发webapi,可以定义路由、定义get、post方法等

但是要让浏览器可以访问webapi,还需要用到uvicorn,即web服务器,类似Tomcat、iis这种的

虽然FastApi也可以直接运行web程序,但是主要用于开发、测试,在安全性、异步请求上不如unicorn专业。

pip安装相关包

FastApi

uvicorn

注意:可能一次安装不成功,可以多尝试几次,再一个不要把包名称写错,那样也是不行的

webapi开发

get方法

新建main.py文件(这个后面在通过uvicorn访问webapi的时候会用到)

先来一个简单的get请求

from fastapi import Body, FastAPI, Query
from pydantic import BaseModel


# 创建api实例
# 注意这里app命名,在uvicorn启动webapi的时候用到
app = FastAPI()

# get方法,路由是根目录
@app.get("/")
async def root():
    return {"message":"hello world"}

文件夹路径定位到mian.py文件的当前目录,运行cmd,输入:uvicorn main:app --reload

注意:这里main即main.py文件名,app是main.py文件里定义的webapi应用名

输入命令回车,这个时候命令行输出几行信息,即代表应用成功启动

可以看到应用运行的地址是:http://127.0.0.1:8000

浏览器输入地址,访问,可以发现输出了我们代码中写的json串

webapi在线文档

浏览器访问:http://127.0.0.1:8000/docs,即可查看webapi交互文档(直接进行接口调用)
访问:http://127.0.0.1:8000/redoc,即可查看webapi文档

post方法
 

# 继承了BaseModel,定义了ChatInfo的数据格式
class ChatInfo(BaseModel):  
    uset: str = "u1"  
    question: str   
    no: int = 0  

# 继承了BaseModel,定义了OtherInfo的数据格式
class OtherInfo(BaseModel):  
    info: str 

# post方法,路由/chat
@app.post("/chat")
async def chat(chatInfo:ChatInfo=Body(description="聊天信息"),
               otherInfo:OtherInfo=Body(description="其他信息"),
               cid:str=Query(description="聊天信息id")):
    # 参数说明:
    # chatinfo、otherInfo是body数据
    # cid是url参数
    # 接口返回相关参数
    return {"param":cid,"chat":chatInfo,"other":otherInfo}

 如上代码,定义了ChatInfo、OtherInfo类,用于承接两个body参数,cid是url参数,其中description可以设置参数描述,这个信息用于在webapi文档中显示

接口返回相关参数信息

接下来进行接口调用:

返回值:

注意:实际中调用webapi可能还需要设置header,主要包括token、cookie等信息,主要用于设置用户登录信息等

FastApi开发参考链接:

fastapi入门三post请求_前端_舌尖上的蛋炒饭-华为云开发者联盟 (csdn.net)icon-default.png?t=N7T8https://huaweicloud.csdn.net/63a560f7b878a54545945834.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~activity-1-121771195-blog-129127450.235%5Ev39%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~activity-1-121771195-blog-129127450.235%5Ev39%5Epc_relevant_anti_t3_base&utm_relevant_index=2

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值