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 BaseModel
app = 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,开启您的数据应用开发之旅!