FastAPI 第三课 -- 第一个 FastAPI 应用

创建一个名为 main.py 的文件,添加以下代码:

from fastapi import FastAPI

app = FastAPI()

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

在命令行中运行以下命令以启动应用:

uvicorn main:app --reload

现在,打开浏览器并访问 http://127.0.0.1:8000,你应该能够看到 FastAPI 自动生成的交互式文档,并在根路径 ("/") 返回的 JSON 响应。

接下来我们来丰富下代码功能,并做具体说明。

以下的 FastAPI 应用,使用了两个路由操作(/ 和 /items/{item_id}):

from typing import Union

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: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

代码拆解分析

1、导入必要的模块和类:

from typing import Union
from fastapi import FastAPI

以上实例导入了 Union 类型,用于支持多种数据类型的参数注解。

2、创建 FastAPI 实例:

app = FastAPI()

在这一步,创建了一个 FastAPI 应用的实例,它将用于定义和管理应用的各个组件,包括路由。

FastAPI 是 FastAPI 框架的主要类。

3、定义根路径 / 的路由操作:

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

这个路由操作使用了 @app.get("/") 装饰器,表示当用户通过 HTTP GET 请求访问根路径时,将执行 read_root 函数。函数返回一个包含 {"Hello": "World"} 的字典,这个字典会被 FastAPI 自动转换为 JSON 格式并返回给用户。

4、定义带路径参数和查询参数的路由操作:

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

这个路由操作使用了 @app.get("/items/{item_id}") 装饰器,表示当用户通过 HTTP GET 请求访问 /items/{item_id} 路径时,将执行 read_item 函数。

函数接受两个参数:

  • item_id --是路径参数,指定为整数类型。
  • q -- 是查询参数,指定为字符串类型或空(None)。

函数返回一个字典,包含传入的 item_id 和 q 参数。

q 参数通过 Union[str, None] 表示可以是字符串类型或空,这样就允许在请求中不提供 q 参数。

使用浏览器访问 http://127.0.0.1:8000/items/5?q=labixiaoliu,你将会看到如下 JSON 响应:

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

 如下所示:

//20231219105520// http://127.0.0.1:8000/items/5?q=labixiaoliu
{
    "item_id":5
    "q":"labixiaoliu"
}
`dash-fastapi-admin`是一个基于Dash、FastAPI和Flask框架构建的应用程序模板,主要用于创建易于维护和扩展的数据可视化Web应用程序。它集成了强大的后台管理功能,并提供了多种数据展示组件和交互工具,使得开发者能够快速地搭建出具备高级管理能力和自定义界面的数据分析平台。 ### 主要特点: 1. **高性能后端服务**:通过整合FastAPI作为其核心后端,`dash-fastapi-admin`提供了一个轻量级、高效并且支持高并发请求的API服务器。FastAPI以其简洁优雅的语法和高效的性能而著称,在处理大量实时数据请求时表现出色。 2. **集成DASH**:利用Dash的灵活性和交互性,用户可以轻松创建动态、响应式的可视化界面。Dash允许开发者通过Python编写前端界面,结合实时更新的数据源,生成高度互动的仪表盘应用。 3. **易扩展性和定制化**:框架设计注重模块化和可配置性,使得开发者可以根据项目需求添加或修改组件,例如增加新的数据源、调整界面布局或是集成第三方服务。 4. **管理界面**:内置了丰富的后台管理功能,包括用户认证、权限控制、资源管理等,简化了系统运维的工作量。这使得开发者除了关注数据可视化以外,还能够专注于业务逻辑的实现。 5. **社区支持**:得益于Dash和FastAPI的强大社区基础,`dash-fastapi-admin`同样得到了广泛的支持。开发者可以在GitHub上找到示例项目、文档和其他开发者的经验分享,加速学习和开发过程。 ### 应用场景: - 数据分析师需要创建复杂的数据报告和仪表板,同时希望提供给非技术团队成员访问和操作权限。 - 开发者计划构建一款数据驱动型产品,既需要强大的数据分析能力,也需要良好的用户体验和便捷的后台管理系统。 - 企业需要搭建内部的数据监控中心或客户自助查询平台,要求既有专业数据展现又具备用户友好的界面。 ### 相关问题: 1. `dash-fastapi-admin`与其他类似框架相比,有哪些独特优势? 2. 如何安装并基本设置`dash-fastapi-admin`框架? 3. 在实际项目中,如何有效利用`dash-fastapi-admin`进行数据可视化和后台管理的集成?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜡笔小流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值