当前位置: 首页 > news >正文

FastApi快速实践

在这里插入图片描述

文章目录

      • 一、主要功能:
      • 二、安装 FastAPI 和 Uvicorn(运行服务器)
      • 三、示例代码:
      • 四、运行服务器:
        • 1. 方式一:
        • 2. 方式二:
      • 五、访问接口
      • 六、如果需要跨域(CORS)
      • 七、总结

下面是一个使用 FastAPI 构建简单 API 的示例,包括 GETPOST 方法:

一、主要功能:

  • GET / :返回欢迎信息
  • POST /items/ :接收 JSON 数据,返回相应的响应

二、安装 FastAPI 和 Uvicorn(运行服务器)

pip install fastapi uvicorn

三、示例代码:

from fastapi import FastAPI
from pydantic import BaseModelapp = FastAPI()# 定义请求数据模型
class Item(BaseModel):name: strprice: floatdescription: str = None# GET 方法
@app.get("/")
def read_root():return {"message": "Welcome to FastAPI!"}# POST 方法,创建 item
@app.post("/items/")
def create_item(item: Item):return {"message": "Item received!", "item": item}# 运行服务器:
# 在终端运行: uvicorn filename:app --reload

四、运行服务器:

1. 方式一:

假设你的文件名为main.py,可以使用以下命令启动开发服务器:

uvicorn main:app --reload

参数说明:

  • main:app 指的是文件名(main.py)中的 app 实例

  • --reload 支持热重载,便于开发调试

2. 方式二:

假设你的文件名为main.py,在main.py中增加:

if __name__ == "__main__":# 运行 FastAPIuvicorn.run(app, host="0.0.0.0", port=XXXX)

说明:

  • xxxx替换为4个数字,就是port号
  • 直接执行 python main.py

五、访问接口

  • 主页: http://127.0.0.1:8000/
  • Swagger文档(自动生成): http://127.0.0.1:8000/docs(Swagger UI)
  • ReDoc文档(交互式API文档): http://127.0.0.1:8000/redoc

六、如果需要跨域(CORS)

当你前后端分离部署或调用第三方接口时,可能会遇到跨域问题。此时可添加如下配置。

from fastapi.middleware.cors import CORSMiddlewareapp.add_middleware(CORSMiddleware,allow_origins=["*"],allow_credentials=True,allow_methods=["*"],allow_headers=["*"],
)

app = FastAPI()后面加上即可。

七、总结

这个示例展示了 FastAPI 的基本用法,涵盖:

  • 接口定义(GET / POST)
  • 请求体校验(基于 Pydantic)
  • 自动生成交互式 API 文档
  • 跨域处理配置
  • 使用 Uvicorn 启动服务

FastAPI 支持异步编程、高性能、类型注解验证等特性,适合开发现代 Web API。如果需要实现更复杂的功能(如数据库连接、用户认证、JWT 登录、异步任务等),可以在此基础上进一步扩展。

相关文章:

  • 一键获取当前项目的所有文件结构并保存到文本文件
  • ​​工业机器人智能编程:从示教器到AI自主决策​​
  • 雅思听力--75个重点单词/词组
  • 在JSP写入Text文件方法指南
  • go语言实现用户管理系统
  • 【2025软考高级架构师】——2024年11月份真题与解析
  • 使用 OpenCV 和 Dlib实现轮廓绘制
  • 在写setup时遇到的问题与思考
  • 【2025软考高级架构师】——知识脑图总结
  • 管理配置信息和敏感信息
  • 【2025最新】Baichuan-M1-instruct部署教程
  • CPU缓存
  • 湖北理元理律师事务所:债务优化的合规化探索
  • 【大模型架构-Transformer、Mamba、Hyena】
  • 【day02】牛牛的快递 | 最小花费爬楼梯 | 数组中两个字符串的最小距离
  • UNet 改进(22):结合Transformer结构
  • 【RocketMQ Broker 相关源码】- broker 启动源码(1)
  • 「Mac畅玩AIGC与多模态17」开发篇13 - 条件判断与分支跳转工作流示例
  • 看图建模实战训练案例(上)
  • 无人机视觉:连接像素与现实世界 —— 像素与GPS坐标双向转换指南
  • 热点问答丨新加坡人民行动党缘何再赢议会选举
  • 老人误操作免密支付买几百只鸡崽,经济日报:支付要便捷也要安全
  • 空间方法:一周城市生活
  • 女冰队长于柏巍,拒绝被年龄定义
  • 移动互联网未成年人模式正式发布
  • 言短意长|政府食堂、停车场开放的示范效应