fast api 学习
教程: bilibili
第一部分 认识fastapi
1.1 web基础知识
- 在浏览器里通过访问网站, 实质上是发送http请求。
1.3 一个的例子 (见注释)
import uvicorn
from fastapi import FastAPI
app = FastAPI() # 创建应用实例
@app.get('/') # 定义路由路径
async def hello_world(): #定义路径操作函数
return {"hello": 'world'} # 返回“hello world”
if __name__ == '__main__':
uvicorn.run(app = app) #在ASGI服务器中启动 FastAPI应用实例
在地址栏输入127.0.0.1:8000
浏览器会返回{"hello": 'world'}
其中,API接口的类型为GET,接口的路径是“/”,对应于程序中对应的路由路径
什么是路由,简单的理解就是一个路由表格,一对一,每一个路径对应这个一个接口(访问接口时会显示),因为我们编程实现了各个接口,当用户希望访问时,就使用不同的路径来对应接口。
在浏览器中访问次接口时,会执行与路由路径关联的路由操作函数, 在上例中是函数hello_world
关于127.0.0.1
127.0.0.1 被称为本地环回地址
server/client的应用程序,client向server发送请求, server将数据返回给client;
实现这一通信过程有一个必须的条件:客户端client和服务器server需要两个不同的ip地址
目前的需求是:现在我们要在本地测试这个应用程序
那么,我们该怎么做呢?
第一步:我们可以将我们本地ip当做客户端的地址,
第二步:再把127.0.0.1当做服务器server的地址,
这样一来,客户端向127.0.0.1发送请求, 就会从127.0.0.1得到返回数据。
这里我来着重解释一下这里的本地Ip,本地IP的意思是,你只要处于一个网络中,你在该网络中就会有一个IP,这就是本地ip
这时候,你以本地Ip向127.0.0.1发送请求,该请求绕了一圈,又请求到了本机上;
正是因为这个跑了一圈又跑了回来的过程,所以
127.0.0.1就被称为了本地环回地址(loopback)!!
他的主要的两个作用:测试网卡,测试程序
1.3 一个请求流程:
当用户通过浏览器发起请求数据时,FastAPI服务器端对请求数据做以下
第一步,由FastAPI 中间件接收请求数据,对数据进行初步的处理操作:
第二步,对请求的URL中的路径与FastAPI定义的路由列表进行匹配;
第三步,FastAPI 对请求数据进行数据验证和数据转换,生成符合要求的
数据,并将数据传递给路径操作函数;
第四步,路径操作函数接收请求数据后,调用业务操作功能或代码对数据进行加工,并对资源进行读写,再将处理结果封装成响应数据。
第五步,将响应数据传递给FastAPI中间件,由 FastAPI 中间件对数据进行再次处理后,返回给浏览器。
参考:
https://blog.csdn.net/weixin_42204641/article/details/83548922