首页 > 编程语言 >Python框架-FastAPI

Python框架-FastAPI

时间:2024-08-03 10:40:48浏览次数:16  
标签:return 框架 Python FastAPI app item fastapi id

FastAPI是一个现代、快速(高性能)的web框架,用于构建API。

官网: https://fastapi.tiangolo.com/
源码: https://github.com/fastapi/fastapi

安装

# 安装 FastAPI
pip install fastapi
# 安装 Uvicorn(用于运行 ASGI 服务器)
pip install uvicorn

创建一个main.py

from fastapi import FastAPI

app = FastAPI()

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

使用 Uvicorn 运行应用

uvicorn main:app --reload

# main: 指的是 main.py 文件(不需要写 .py 扩展名)。
# app: 指的是在 main.py 文件中创建的 FastAPI 实例。
# --reload: 启用自动重载,使代码更改立即生效。

打开浏览器,访问 http://127.0.0.1:8000,将看到以下 JSON 响应:

{"Hello": "World"}

简单样例

from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional

app = FastAPI()


# 定义数据模型
class Item(BaseModel):
    name: str
    description: str = None


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


@app.post("/items/")
def create_item(item: Item):
    return item


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

交互式文档

FastAPI 提供了自动生成的交互式 API 文档。启动应用后,访问以下 URL:

直接可以在页面中测试API接口,比如发送一个 POST 请求到 /items/,在Request body中编辑

{
  "name": "test",
  "description": "test"
}

点击Execute,可以在Responses中看到响应结果

标签:return,框架,Python,FastAPI,app,item,fastapi,id
From: https://www.cnblogs.com/rustling/p/18340145

相关文章

  • 12:Python列表属性
    #list类,列表li=[1,2,6,'adfadsf','fadfe',['fda',5,["wdf",4],'中国人']]#中国号括起来,逗号分开,可以是数字、字符串、列表、布尔值,列表可以嵌套任何类型print(li)print(li[5])#索引取值print(li[3:6])#切片结果也是列表print(li[3:-1])foriteminli:......
  • python 滑动验证码爬取思路
    参考文章:python爬虫之滑动验证码[完整版]-简书内附个人理解注释示例代码:fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsimporttimefromselenium.webdriver.common.byimportByfromselenium.webdriver.support.......
  • 科普文:万字细说微服务及其框架Netflix,Spring Cloud,Spring Cloud Alibaba梳理
    概叙微服务(Microservices)是一种软件架构风格,它将单一的应用程序拆分为多个小的服务,每个服务都是独立运行和部署的。每个微服务通常只专注于一个业务功能,具有自己的数据存储,并且通过轻量级的通信机制(如HTTP或消息队列)与其他服务进行交互。微服务发展到现在,不仅仅只是服务治理,......
  • 使用Python自动将照片文件夹转换为PowerPoint幻灯片
    在这个数字时代,我们经常需要快速创建照片幻灯片来展示我们的回忆或工作成果。今天,我们将探讨如何使用Python来自动化这个过程,将一个文件夹中的所有照片转换为一个精美的PowerPoint演示文稿,每张照片占据一页,并以文件名作为标题。C:\pythoncode\new\jpeginsertppt.py全......
  • Python的GDAL库绘制多波段、长时序遥感影像时间曲线图
      本文介绍基于Python中的gdal模块,对大量长时间序列的栅格遥感影像文件,绘制其每一个波段中、若干随机指定的像元的时间序列曲线图的方法。  在之前的文章中,我们就已经介绍过基于gdal模块,对大量多时相栅格图像,批量绘制像元时间序列折线图的方法。不过当时文章中的需求,每1个时......
  • 仅从 Dash Python 中的表中提取过滤后的数据
    我用DashPython构建了一个网站,并将csv文件的所有数据显示在一个可以过滤的表中。我希望用户能够从表中提取数据。当没有过滤器时,我希望他能够提取完整的数据,当他过滤数据时,我希望他能够提取过滤后的数据。为此,我使用dcc.download组件,它是工作得很好,我还使用d......
  • 如何使用pipenv解决Python包依赖关系?
    我正在使用pipenv处理Python包依赖项。Python包使用两个包(名为pckg1和pckg2),它们依赖于名为pckg3的同一个包,但来自两个不同的包版本显示依赖关系树:$pipenvgraphpckg1==3.0.0-pckg3[required:>=4.1.0]......
  • 存在的开放路径不起作用 - python
    代码获取测试logs\log.jsonl的根路径,该路径在图像中显然在那里,但无法打开它#doesntworkdir_path=os.path.dirname(os.path.realpath(__file__))withopen(os.path.join(dir_path,"logs\\log.jsnol"),'r')asjsondata:data=json.load(jsondata)wit......
  • 如何在系统PATH中永久添加路径? - Python
    我正在为我的一个项目创建一个安装程序,下载该项目的二进制文件(在ZIP文件中),然后将其解压缩到操作系统程序文件夹中的一个目录中,我想将此目录添加到|||。我的脚本是一个带有UI的安装程序,其目的是编译为PATH/可执行文件。如果你能找到我一种.exe平台无关......
  • python数据分析与可视化基础
    一、数据分析介绍:1.数据分析含义:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据分析的数学基础在20世纪早......