Streamlit 入门使用指南及与 FastAPI 的配合使用

devtools/2024/11/7 14:47:46/

Streamlit 入门使用指南及与 FastAPI 的配合使用

Streamlit 是一个用于构建数据应用的快速 Web 应用框架,它特别适合数据科学家和机器学习工程师,无需复杂的前端开发知识即可创建交互式应用。结合 FastAPI,可以轻松构建后端服务并将其与 Streamlit 前端进行配合使用,创建强大的数据应用。

1. 安装 Streamlit 和 FastAPI

首先,您需要安装 Streamlit 和 FastAPI。可以使用以下命令通过 pip 安装它们:

pip install streamlit fastapi uvicorn
2. 创建简单的 Streamlit 应用

以下是一个简单的 Streamlit 应用示例,展示了如何构建用户界面并处理用户输入。

python"># app.py
import streamlit as st
import requests# 设置页面标题
st.title("简单的 Streamlit 应用")# 创建文件上传控件
uploaded_file = st.file_uploader("上传文件", type=["csv", "txt"])if uploaded_file is not None:# 读取文件内容data = uploaded_file.getvalue().decode("utf-8")st.write("文件内容:")st.text(data)# 创建文本输入控件
user_input = st.text_input("输入一些文本")if st.button("提交"):# 将用户输入发送到 FastAPI 后端response = requests.post("http://127.0.0.1:8000/submit/", json={"input_text": user_input})if response.status_code == 200:st.write("后端响应:", response.json())else:st.error("请求失败!")
3. 创建 FastAPI 后端

接下来,创建一个简单的 FastAPI 后端来处理来自 Streamlit 的请求。

python"># main.py
from fastapi import FastAPI
from pydantic import BaseModelapp = FastAPI()class InputData(BaseModel):input_text: str@app.post("/submit/")
async def submit_data(data: InputData):return {"message": f"您提交的文本是:{data.input_text}"}# 运行应用
# 在命令行中执行 uvicorn main:app --reload
4. 运行应用

运行 FastAPI 后端

在命令行中导航到 FastAPI 文件所在目录,然后运行以下命令:

uvicorn main:app --reload

运行 Streamlit 应用

在另一个命令行窗口中导航到 Streamlit 文件所在目录,然后运行以下命令:

streamlit run app.py
5. 访问应用
  • 访问 FastAPI 文档:http://127.0.0.1:8000/docs
  • 访问 Streamlit 应用:默认在 http://localhost:8501
6. 示例功能
  • 文件上传:用户可以上传文件,应用会读取并显示文件内容。
  • 文本输入:用户可以输入文本,点击提交后将数据发送到 FastAPI 后端,后端会返回处理结果。
7. 总结

Streamlit 和 FastAPI 的结合使得构建数据驱动的 Web 应用变得轻松而高效。Streamlit 负责提供用户友好的界面,FastAPI 则处理后端逻辑和数据请求。通过这种组合,您可以快速构建出强大且功能丰富的应用,无论是用于数据可视化、机器学习模型的展示,还是其他需要快速开发的应用场景。

希望这篇入门指南能帮助您快速上手 Streamlit 和 FastAPI,开启您的数据应用开发之旅!


http://www.ppmy.cn/devtools/131717.html

相关文章

全面解析:云计算技术及其应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 全面解析:云计算技术及其应用 全面解析:云计算技术及其应用 全面解析:云计算技术及其应用 云…

提示工程:GPT写一篇短篇小说~通义千问

提示词: 我要写篇风格和盗墓笔记类似的短篇玄幻小说,主线内容为一个大家族的女儿出生后,被管家串通接生婆调包换成了管家自己的女儿,多年之后真正的女儿机缘巧合的机会认识了她的父亲,并最终证实了自己的身份&#xf…

18.04Ubuntu遇到Unable to locate package

解决办法: 要先升级你的apt Sudo apt-get update

TMDOG的Gin学习笔记_01——初识Gin框架

TMDOG的Gin学习笔记_01——初识Gin框架 博客地址:[TMDOG的博客](https://blog.tmdog114514.icu) 作者自述: 停更太久了,是因为开学了课太多了,并且我一直在准备上篇文章的内容正在coding,就先搁置了更新博客QAQ&…

【虚拟仿真】CEETRON SDK在船舶流体与结构仿真中的应用解读

随着全球造船业的快速发展和数字化转型,虚拟仿真技术在船舶设计、建造及维护中的应用变得愈加重要。造船业的复杂性和高成本使得工程师们依赖先进的仿真工具来优化设计、提升安全性并减少资源浪费。在此背景下,CEETRON SDK作为强大的可视化和仿真开发工具…

sql中判断一个字段是否包含一个数据的方法

目录 一、使用LIKE关键字 示例 应用场景 二、使用IN关键字 示例 应用场景 三、使用FIND_IN_SET函数(MySQL专用) 示例 应用场景 四、使用CHARINDEX或POSITION函数 示例 应用场景 五、使用正则表达式(部分数据库支持) …

滑动窗口习题篇(下)

滑动窗口习题篇(下) 1.水果成篮 题目描述: 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了…

Java中的远程方法调用——RPC详解

1. 什么是RPC? RPC基础介绍 Java中的远程方法调用(Remote Procedure Call,RPC)是一种允许一个程序调用另一台计算机上方法的技术,就像在本地一样。RPC的核心思想是简化分布式计算,让我们可以跨网络调用远程…