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

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

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

1. 安装 Streamlit 和 FastAPI

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

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

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

# 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 的请求。

# 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.mzph.cn/web/58262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十六章 C++入门

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统

前言 现在已经学习了很多与Java相关的知识,但是迟迟没有进行一个完整的实践(之前这个项目开发到一半,很多东西没学搁置了,同时原先的项目中也有很多的问题),所以现在准备从零开始做一个基于SpringBootVue的…

【系统架构设计师】2022年真题论文: 论软件维护方法及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2022年 试题2)解题思路软件维护的类型软件维护的方法软件维护方法的应用案例论文素材参考真题题目(2022年 试题2) 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满…

基于Matlab的语音识别

一、引言 语音识别技术是让计算机识别一些语音信号,并把语音信号转换成相应的文本或者命令的一种高科技技术。语音识别技术所涉及的领域非常广泛,包括信号处理、模式识别、人工智能等技术。近年来已经从实验室开始走向市场,渗透到家电、通信…

如何在 IntelliJ IDEA 中调整 `Ctrl+/` 快捷键生成注释的位置

前言 在使用 IntelliJ IDEA 编写代码时,注释是代码可读性和维护性的重要组成部分。IDEA 提供了快捷键 Ctrl/ 用于快速生成单行注释。然而,默认情况下,使用此快捷键生成的注释会出现在行首,导致注释与代码之间存在较大的空格&…

分布式和微服务系统区别

一、分布式是更广泛的概念,指将计算分布在多个物理节点上的系统。 适用于需要高可用性、高性能、可扩展性的系统。 应用场景:分布式数据库—数据高可用存储、分布式缓存—提升数据访问速度 分布式计算框架—大规模数据计算、分布式文件系统—海量数据的…

Next.js 版本从 15 降级至 14 的操作指南

清除node_modules文件夹:为确保安装环境的整洁性,请先删除node_modules文件夹。 更新package.json文件:在package.json中,将react、react-dom和next的版本号分别修改为18.xx、18.xx(注意:react-dom的版本通…

源鲁杯 2024 web(部分)

[Round 1] Disal F12查看: f1ag_is_here.php 又F12可以发现图片提到了robots 访问robots.txt 得到flag.php<?php show_source(__FILE__); include("flag_is_so_beautiful.php"); $a$_POST[a]; $keypreg_match(/[a-zA-Z]{6}/,$a); $b$_REQUEST[b];if($a>99999…

使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮

前提条件 安装 ADB&#xff1a;确保你已经在计算机上安装了 Android SDK&#xff08;或单独的 ADB&#xff09;。并将其添加到系统环境变量中&#xff0c;以便你可以在命令行中运行 adb。 USB调试&#xff1a;确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -…

数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置

目录 一、连接字符串 【本地连接字符串】 【远程连接字符串】 二、备份 三、还原 &#xff08;1&#xff09;还原数据库-bak、btn文件 &#xff08;2&#xff09;附加数据库mdf文件 四、SQL监视器的使用 一、连接字符串 【本地连接字符串】 server DESKTOP-FTH2P3S; Da…

Oracle视频基础1.3.6练习

1.3.6 以下是您的需求清单&#xff08;不含解决方案&#xff09;&#xff1a; 检查数据库启动情况等待会话结束&#xff0c;进行正常关机等待事务全部提交后再关机查看 alert 日志文件查看后台跟踪文件查看用户跟踪文件 检查数据库启动情况 ps -ef | grep oracle ipcs clear…

【大数据学习 | HBASE】hbase的原理与组成结构

1. hbase的简述 hbase作为google的大数据三篇比较重要的论文之一&#xff0c;它的起源叫做bigtable&#xff0c;意思非常简单就是大表的意思&#xff0c;是一个分布式存储很多数据的大型表格系统&#xff0c;它是对于hdfs中的数据不能直观查询和随机读写的病痛的一个补充和完善…

苍穹外卖Bug集合

初始化后端项目运行出现以下问题 以上报错是因为maven和jdk版本不符合&#xff0c;需要将jdk改成17&#xff0c;mavne改成3.9.9

【C++篇】在秩序与混沌的交响乐中: STL之map容器的哲学探寻

文章目录 C map 容器详解&#xff1a;高效存储与快速查找前言第一章&#xff1a;C map 的概念1.1 map 的定义1.2 map 的特点 第二章&#xff1a;map 的构造方法2.1 常见构造函数2.1.1 示例&#xff1a;不同构造方法 2.2 相关文档 第三章&#xff1a;map 的常用操作3.1 插入操作…

太空旅游:科技能否让星辰大海变为现实?

内容概要 在这个快速变化的时代&#xff0c;太空旅游成为了一个让人热血沸腾的话题。想象一下&#xff0c;坐在一颗漂浮的太空舱里&#xff0c;手中端着饮料&#xff0c;眺望着无尽的星辰大海&#xff0c;简直就像科幻电影中的情节一样。不过&#xff0c;这不仅仅是一个空洞的…

程序中怎样用最简单方法实现写excel文档

很多开发语言都能找到excel文档读写的库&#xff0c;但是在资源极其受限的环境下开发&#xff0c;引入这些库会带来兼容性问题。因为一个小功能引入一堆库&#xff0c;我始终觉得划不来。看到有项目引用的jar包有一百多个&#xff0c;看着头麻&#xff0c;根本搞不清谁依赖谁。…

R 环境安装

R 环境安装 R 是一种广泛使用的统计软件和编程语言,特别适合用于数据分析和可视化。在开始使用 R 进行数据分析之前,您需要在自己的计算机上安装 R 环境。本文将详细介绍如何在不同的操作系统上安装 R,并配置必要的组件以开始您的数据分析之旅。 1. Windows 系统上的 R 安…

本地缓存与 Redis:为什么我们仍然需要本地缓存?

文章目录 本地缓存与 Redis&#xff1a;为何仍需本地缓存&#xff1f;为什么需要本地缓存&#xff1f;多级缓存架构多级缓存的实现 本地缓存的实现方式使用 cachetools 实现 LRUCache使用 diskcache 实现持久化缓存 缓存装饰器实现进一步优化&#xff1a;缓存失效与更新 小结 好…

【春秋云镜】CVE-2023-23752

目录 CVE-2023-23752漏洞细节漏洞利用示例修复建议 春秋云镜&#xff1a;解法一&#xff1a;解法二&#xff1a; CVE-2023-23752 是一个影响 Joomla CMS 的未授权路径遍历漏洞。该漏洞出现在 Joomla 4.0.0 至 4.2.7 版本中&#xff0c;允许未经认证的远程攻击者通过特定 API 端…

解决虚拟机启动报:此主机支持AMD-V,但AMD-V处于禁用状态

首先要知道你自己使用的主板型号&#xff0c;如果是京东购买的&#xff0c;可以直接上京东去问客服。如果没有订单号&#xff0c;如果能提供正确的主板型号&#xff0c;他们应该也是会帮忙解答的。 您好&#xff0c;AMD 平台与 Intel 平台以及部分新老主板开启虚拟化的步骤和细…