当前位置: 首页 > news >正文

Python Web框架:Streamlit

一、简介

Streamlit(https://docs.streamlit.io/)是一个基于tornado框架的快速搭建Web应用的Python库,封装了大量常用组件方法,支持大量数据表、图表等对象的渲染,支持网格化、响应式布局。简单来说,可以让不了解前端的人搭建网页。相比于同类产品PyWebIO,Streamlit的功能更加全面一些(https://docs.streamlit.io/develop/api-reference)。

  • 文本元素
  • 数据元素
  • 图标元素
  • 输入组件
  • 媒体元素
  • 布局和容器
  • 聊天元素
  • 状态元素
  • 三方组件

1.1 安装

# 安装依赖pip install streamlit

1.2 运行

app.python

# 导入模块importasst st.title('Hello World')

运行网页需要在终端中通过streamlit命令来运行 run 某个python文件,运行后会自动打开网页http://localhost:8051

# 先切换到python文件所在的目录D:\>streamlit run app.py


二、API Reference

写 write

Write argurnents to the app.

st.write("Hello world")

写流 write_stream

Write generators or streams to the appwith a typewriter effect.

st.write_stream(my_generator)st.write_stream(my_llm_stream)

头 header

st.header("Hello world")

标题 title

st.title("Hello World")

markdown

st.markdown("Hello **World**")

分割线 divider

st.divider()

吐司 Toast

st.toast("吐司提示",icon="✅")

成功 success

st.success("操作成功")

按钮 button

st.button("按钮")

文本输入框 text_input

name=st.text_input("姓名","melong")st.write("当前输入内容为",name)

日期

importdatetimeimportstreamlitasst event_time=st.datetime_input("生日",datetime.datetime(2026,4,26,16,45),)st.write("生日是:",event_time)


表格 table

importpandasaspdimportstreamlitasst confusion_matrix=pd.DataFrame({"Predicted Cat":[85,3,2,1],"Predicted Dog":[2,78,4,0],"Predicted Bird":[1,5,72,3],"Predicted Fish":[0,2,1,89],},index=["Actual Cat","Actual Dog","Actual Bird","Actual Fish"],)st.table(confusion_matrix)

文件上传 file_uploader

importpandasaspdimportstreamlitasst files=st.file_uploader("Upload files",accept_multiple_files=True,type=["csv","xlsx"],)iffiles:forfileinfiles:st.subheader(file.name)suffix=file.name.lower().rsplit(".",maxsplit=1)[-1]ifsuffix=="csv":df=pd.read_csv(file)else:df=pd.read_excel(file)st.dataframe(df,use_container_width=True)


图片

st.image("https://example.com/myimage.jpg")st.pdf("my_document.pdf")

图表 Chart

importpandasaspdimportstreamlitasstfromnumpy.randomimportdefault_rngasrng df=pd.DataFrame(rng(0).standard_normal((20,3)),columns=["a","b","c"])st.bar_chart(df)

聊天输入框 chat_input

prompt=st.chat_input()st.write(prompt)


输入你好

旋转器 spinner

加载中

importtimewithst.spinner("思考中..."):time.sleep(1)

聊天消息 chat_message

st.chat_message("user").write(prompt)st.chat_message("assistant").write_stream(prompt)

会话状态 session_state

当页面元素发生任何变化时,都会重新刷新页面,并且重新执行代码,也就是页面是无状态的。
当刷新后再想获取之前执行后的结果,需要借助会话状态,将执行后的结果保存到会话状态中。
当页面再刷新后可以从会话状态中获取原来执行的结果。
session_state 本身是一个对象,可以往这个对象中添加任意属性和取值。

if"message"notinst.session_state:st.session_state["message"]=[]st.session_state["message"].append({"role":"user","content":"用户的提示词prompt"})
importstreamlitasstif"message"notinst.session_state:st.session_state["message"]=[{"role":"assistant","content":"我是一个AI助手,有什么可以帮助您的?"}]prompt=st.chat_input()ifprompt:st.session_state["message"].append({"role":"user","content":prompt})ifst.session_state["message"]:formessageinst.session_state["message"]:withst.chat_message(message["role"]):st.write(message["content"])

重新运行 rerun

手动刷新页面

st.rerun()
http://www.jsqmd.com/news/703427/

相关文章:

  • 告别片荒!用Docker把小雅Alist打造成你的私人Netflix,Windows/Mac/手机全设备观影攻略
  • 聊聊购买柠檬无骨鸡爪选哪个品牌,岗叉楼口碑咋样? - 工业设备
  • 如何轻松修改GTA圣安地列斯存档:跨平台编辑工具完全解析
  • 构建个人AI基础设施:本地化部署与RAG系统实战指南
  • 2026年3月口碑好的酒店移动隔断厂商推荐,酒店移动隔断/高隔断/隔断/移动隔断/酒店活动隔断,酒店移动隔断厂家哪家专业 - 品牌推荐师
  • CodeLayer:基于上下文工程与多智能体协作的复杂代码库AI编程实践
  • ViT模型效果真比CNN强?我用CIFAR-10和ResNet50做了个对比实验
  • Navidrome:打造你的专属音乐流媒体服务
  • 题解:洛谷 B2071 余数相同问题
  • python模块导入
  • Mermaid Live Editor 终极指南:3分钟从零开始制作专业图表
  • STM32G4 FOC电机控制:手把手教你用TIM1触发ADC采样三相电流(含CubeMX配置避坑指南)
  • 5分钟快速上手:大麦助手终极抢票指南
  • 2026年3月优秀的工程机械品牌推荐,海口国兴优秀的工程机械设备服务商,工程机械性能可靠,经得起考验 - 品牌推荐师
  • 零代码搭建KoboldAI本地AI写作助手:终极完整指南
  • QMCFLAC2MP3:终极免费工具,一键突破QQ音乐格式限制,实现音乐自由!
  • 用Python和ESA工具箱处理CryoSat-2数据:从下载SIRAL波形到生成冰厚变化图的保姆级教程
  • Reference Extractor终极指南:3步快速恢复丢失的Zotero和Mendeley引用
  • 三步快速解密:Unlock Music音频转换完整指南
  • 远程容器调试卡顿、Git 凭据失效、端口转发失败?5步标准化诊断流程,30分钟重建企业级 Dev Container
  • 别再纠结CNN还是Transformer了!手把手教你用MobileViT在手机上跑图像分类(附PyTorch代码)
  • SSCom串口调试助手:跨平台串口通信的5大核心技术深度解析
  • 基于Claude API的子代理框架:构建模块化AI智能体协作系统
  • Windows 11 22631版本中Win+X快捷键失效的技术追踪与修复方案
  • 从零开始:Excalidraw手绘白板的3种应用场景与集成方案
  • E7Helper终极指南:免费自动化脚本解放你的第七史诗游戏时间
  • 林盛石业芝麻黑矿山供应商排名情况如何 - 工业品牌热点
  • 从仿真到实物:基于Arduino UNO的DHT11湿度控制器DIY全记录(含Proteus电路与源码)
  • 企业AI基建升级迫在眉睫,Docker AI Toolkit 2026如何让MLOps成本下降47%、CI/CD通过率提升至99.2%,你还没部署?
  • 智能筛选企业高风险账务,提前规避税务稽查自查实操。