streamlit使用技巧
实现上传PDF并显示
## 上传并预览(1M以内才可预览)
def upload_Pre():
file = st.file_uploader("选择待上传的PDF文件", type=['pdf'])
if st.button("点击"):
if file is not None:
with tempfile.NamedTemporaryFile(delete=False) as tmp_file:
fp = Path(tmp_file.name)
fp.write_bytes(file.getvalue())
with open(tmp_file.name, "rb") as f:
base64_pdf = base64.b64encode(f.read()).decode('utf-8')
pdf_display = f'<embed src="data:application/pdf;base64,{base64_pdf}" ' \
f'width="800" height="1000" type="application/pdf">'
st.markdown(pdf_display, unsafe_allow_html=True)
实现上传(多个)不同类型文件并保存
# 上传文件
def upload_Save():
# 创建一个文件夹用于保存上传的文件(若存在则清空,若不存在,则新建)
dirs = 'uploads'
if not os.path.exists(dirs):
os.makedirs(dirs)
else:
shutil.rmtree(dirs)
os.makedirs(dirs)
# 选择文件
uploaded_files = st.file_uploader("请选择情报文件:",accept_multiple_files =True, type=["pdf","txt","docx"])
# 保存文件
if uploaded_files:
for uploaded_file in uploaded_files:
file_contents = uploaded_file.getvalue()
file_path = os.path.join(dirs, uploaded_file.name)
# 将文件保存到本地文件系统
with open(file_path, "wb") as f:
f.write(file_contents)
# 获取文件路径
st.write(f"文件地址: {file_path}")
return os.path.join(os.path.dirname(os.path.abspath(__file__)),dirs)
实现下载文件按钮
# 下载文件
def download_res(file_path):
if file_path:
# 下载
with open(file_path, "rb") as file:
btn = st.download_button(
label=" 下载文件",
data=file,
file_name=file_path.split('/')[-1],
mime="txt"
)
else:
print("无文件可下载!")
实现触发提示
def prompt_change():
text = f"已切换为 {prompt_template_name} 模板。"
st.toast(text)
prompt_template_select = st.selectbox(
"请选择Prompt模板:",
prompt_templates_kb_list,
index=0,
on_change=prompt_change,
key="prompt_template_select",
)
streamlit使用技巧的更多相关文章
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧
记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...
- 前端网络、JavaScript优化以及开发小技巧
一.网络优化 YSlow有23条规则,中文可以参考这里.这几十条规则最主要是在做消除或减少不必要的网络延迟,将需要传输的数据压缩至最少. 1)合并压缩CSS.JavaScript.图片,静态资源CDN ...
- 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...
- 15个关于Chrome的开发必备小技巧[译]
谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及d ...
- Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...
- 【工具使用】mac电脑使用技巧
本文地址 分享提纲: 1. mac命令行和finder的交互 2. 一些mac的插件 3. 一些开发的配置 1.mac命令行和findder交互 1)命令行中打开当前文件夹: o ...
- Function.prototype.toString 的使用技巧
Function.prototype.toString这个原型方法可以帮助你获得函数的源代码, 比如: function hello ( msg ){ console.log("hello& ...
- SAP CRM 性能小技巧
导言 本页面打算收集SAP CRM实施中可以用于避免性能问题的注意事项,重要的事项会由图标标识. 如果你有其他的技巧想要说出来,别犹豫! 性能注意事项 通用 缓存读取类访问,特别是在性能关键的地方,比 ...
- 分享两个BPM配置小技巧
1.小技巧 流程图修改后发布的话版本号会+1,修改次数多了之后可能会导致版本号很高,这个时候可以将流程导出,然后删除对应的流程包再导入,发布数据模型和流程图之后,版本清零 2.小技巧 有的同事入职后使 ...
随机推荐
- 在Keil中使用ST-LINK烧录STM32程序指南
前言 之前玩STM32都是用J-LINK烧录程序,不仅便捷,而且烧录的速度比用串口快好多. 最近我接了几个32单片机的毕设单子,便买了几块C8T6的最小系统板用来开发.最初我还是用J-LINK烧录C8 ...
- 一款绘制3D架构图的在线神器:iCraft Editor
在软件开发的世界里,架构图是系统设计的蓝图,它们不仅帮助团队理解系统的整体结构,还能提升沟通效率,确保项目的顺利推进.然而,绘制一张清晰.直观的架构图,往往需要大量时间和专业工具.面对繁琐的操作和复杂 ...
- PasteEx:一款.NET开源的Windows快捷粘贴神器
前言 PasteEx是一款.NET开源的用于增强 Windows 粘贴功能的小工具,它解决了将剪贴板内容保存为文件的繁琐步骤.无需打开记事本等应用,它可直接将文字.图片等内容粘贴到桌面上,极大提升了效 ...
- Redis之内存占用分析工具RDR
GitHub:https://github.com/xueqiu/rdr 场景:最近Redis爆满, 但是不清楚具体哪些键占用的空间较多, 是否有设置过期时间等情况 1.下载软件 windows:ht ...
- Django之model外键
外键和表关系 外键: 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam.如果使用的是InnoDB引擎,是支持外键约束的.外键的存在使得ORM框架在处理表关系的时候异常的强大.因 ...
- MySQL底层概述—9.ACID与事务
大纲 1.ACID之原子性 2.ACID之持久性 3.ACID之隔离性 4.ACID之一致性 5.ACID的关系 6.事务控制演进之排队 7.事务控制演进之排它锁 8.事务控制演进之读写锁 9.事务控 ...
- asp.net 简单日志收集
做开发的都知道,完整的日志记录对问题的解决,回溯是多么的重要,多么的不可缺少. 那么我们怎么记录完整的日志? 今天,我们来说一说问题:从哪里开始记录呢?在哪里保存呢? IHttpModule,这个大家 ...
- Linux C/C++编程中的多线程编程基本概念
8.2.1 操作系统和多线程 要在应用程序中实现多线程,必须有操作系统的支持.Linux 32位或64位操作系统对应用程序提供了多线程的支持,所以Windows NT/2000/XP/7/8/10是 ...
- 使用IDEA一键发布应用
1.编辑Dockerfile from java:8 WORKDIR /usr/local ADD ./target/jpaas-bpm.jar . CMD ["java",&qu ...
- JavaScript 页面缓存
1.前言 由来:默认环境中,当浏览器重复访问一个资源时,为节省资源与性能,浏览器将其缓存,后续的请求不再从服务器下载该资源,而是直接从本地缓存中读取,默认时没有强制缓存的 副作用:当服务器资源更新时, ...