随笔 - 214  文章 - 12  评论 - 40  阅读 - 38万

FastAPI 基础学习(二)开发环境安装

作者:麦克煎蛋   出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢!

 

一、依赖项

Python 3.6+

FastAPI 站在这些巨人的肩膀上

可选依赖项:

Pydantic需要:

Starlette需要:

FastAPI / Starlette需要:

  • uvicorn - 加载和服务程序需要.
  • orjson - ORJSONResponse 需要.

你可以通过以下命令安装以上所有安装包:

 pip install fastapi[all]

二、安装

1、pip install fastapi

2、我们需要一个ASGI服务器,可以使用 Uvicorn 或 Hypercorn

     pip install uvicorn

三、示例

1、新建文件main.py

复制代码
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
复制代码

或者使用async定义函数:

复制代码
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
View Code
复制代码

2、运行

uvicorn main:app --reload

输出结果:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.

关于命令的解释:

  • main: 文件 main.py (Python "模块").
  • app:  main.py 创建的实例 app = FastAPI().
  • --reload: 代码有改动时服务会自动重启(仅适用于开发环境)

3、接口访问

在浏览器中访问地址:http://127.0.0.1:8000/items/5?q=somequery

我们可以看到响应结果:

{"item_id": 5, "q": "somequery"}

4、我们实际上实现了具有以下功能的一个API:

  • 接收以下路径的HTTP请求: / 和 /items/{item_id}.
  • 这两个路径都接收GET请求.
  • 路径 /items/{item_id} 具有一个路径参数 item_id 并且类型必须为 int.
  • 路径 /items/{item_id} 具有一个可选的查询参数 q 并且类型必须为 str. 

四、交互式API文档

我们访问以下两个地址,可获取自动生成的交互式API文档,并且当代码改动时文档会自动更新。方便我们的开发调试。

1、http://127.0.0.1:8000/docs (基于 Swagger UI)

2、http://127.0.0.1:8000/redoc (基于 ReDoc)

 

posted on   麦克煎蛋  阅读(4026)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示