安装、小demo、基本的步骤
2024-09-18 15:12:47
FastAPI 有两个依赖支持:
- Starlette负责网络
- Pydantic负责数据
安装:
安装命令
pip install fastapi
FastAPI 还需要ASGI服务器,生产环境下可以使用Uvicorn
pip install uvicorn[standard]
也可以使用以下命令安装所有依赖支持的库:
#该命令还安装了运行FastAPI应用的服务器 -uvicorn
pip install fastapi[all]
运行:
最简单的FastAPI文件所示如下:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {'message': "Hello World"}
复制代码到 main.py
运行代码:
uvicorn main:app --reload
运行命令说明:
- main:
main.py
是python 模块 - app:
main.py
中app = FastAPI()
创建的对象 - --reload:代码更新后,重启服务器,仅在开发时使用
也可以在main.py
里加上这段代码,然后python main.py
运行
import uvicorn
if __name__ == '__main__':
uvicorn.run('main:app', reload=True, host='127.0.0.1', port=8000)
API文档:
通过访问 http://127.0.0.1:8000/docs
可以查看自动生成的API文档。
创建FastAPI的基本步骤
第一步:导入FastAPI
FastAPI是继承了Starlette的类
FastAPI可以调用Starlette的所有功能
第二步:创建FastAPI实例
变量app是FastAPI的类实例,该实例是创建API的主要交互对象。
第三步:创建路径操作
路径是指URL的第一个反斜杠(/)及之后的内容。
https://example.com/items/foo
/items/foo 表示路径或路由或端点
操作是指HTTP方法,常用的方法如下:
- POST :创建数据
- GET :读取数据
- PUT :更新数据
- DELETE :删除数据
@app.get("/")告诉FastAPI下方函数以如下方式处理访问请求:
- 请求路径为
/
- 使用
get
操作
@app 语法是python装饰器
装饰器接收到下方函数,并用它执行一些操作,
本例中,这个装饰器告诉FastAPI下方函数对应的路径是 / 和 get 操作,这就是路径操作装饰器。
第四步:定义路径操作和函数
路径操作函数由以下几部分组成:
- 路径:
/
- 操作:
get
- 函数: 装饰器下方的函数
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
FastAPI每次接收使用get方法访问URL /
的请求时都会调用这个函数。本例中的路径操作函数是异步函数(async)
也可以不使用异步函数,例如:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "Hello World"}
第五步:返回内容
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
路径操作函数可以返回字典、列表以及字符串、整数等单值。
还可以返回Pydantic模型
最新文章
- ELF Format 笔记(十一)—— 程序头结构
- ERROR 1130: Host 'XXXXXXX' is not allowed to connect to this MySQL server
- ECMAScript6 面向对象 时钟效果
- 设置core环境
- ASP.NET——生成验证码
- ASP.NET MVC 5 一 入门
- Repeater展示表格
- day3-Python集合、函数、文件操作,python包的概念
- 在windows下进行linux开发:利用Vagrant+virtualbox(ShowDoc与mp3dish的作者)
- codevs 1515 跳 贪心+lucas
- (二)Maven的安装与环境配置
- python安装画图模块pillow
- 关于使用echarts走过的坑(同grid多图、多轴系列)
- 转载 Net多线程编程—System.Threading.Tasks.Parallel
- hdu2588-GCD-(欧拉函数+分解因子)
- luogu P4108 [HEOI2015]公约数数列——solution
- php ci框架中载入css和js文件失败的原因及解决方法
- VCAP5-DCA – What’s new?
- 数组问题常用的O(N)算法:单调队列
- CentOS.56安装Redis监控工具RedisLive