Hello Navi

note and sharing

前言

Streamlit特别适合需要在Web应用中快速展示数据或算法的项目, 比如 1. 数据分析、数据可视化或数据报告 2. 机器学习和人工智能应用

这是我实现的一个应用:

https://github.com/VKKKV/cypherpro

安装并创建

  1. 安装Streamlit:在终端或命令提示符中运行以下命令:

    1
    pip install streamlit
  2. 创建一个新的Python文件:在你的工作目录中创建一个新的Python文件,比如叫做app.py

  3. 编写Streamlit代码:在app.py文件中,写下以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import streamlit as st

    # 设置页面标题
    st.title('我的Streamlit应用')

    # 显示文本
    st.write('这是一个基本的Streamlit应用,用于展示文本和图像。')

    # 显示图像
    st.image('image.jpg', caption='Sunrise by the mountains')
  4. 运行

    1
    streamlit run app.py

分列

st.columns()用于在水平方向上分割页面布局,创建并排放置的多个元素。

1
2
3
4
5
6
7
8
9
10
# 分列
col1, col2, col3 = st.columns(3)
with col1:
st.write("这是第一列")

with col2:
st.write("这是第二列")

with col3:
st.write("这是第三列")

这段代码会在页面上创建三列,每列分别显示不同的文本。

分页

创建入口文件后,在pages目录中创建.py文件添加页面。

下面是多页应用的有效目录结构:

1
2
3
4
5
Home.py # This is the file you run with "streamlit run"
└─── pages/
└─── About.py # This is a page
└─── 2_Page_two.py # This is another page
└─── 3_😎_three.py # So is this

常用API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 这是最通用的命令,用于在应用中显示文本、数据、图表等。
st.write()

# 用Markdown格式显示文本。
st.markdown()

# 创建一个文本输入框。
st.text_input()

# 创建一个按钮,当被点击时返回True。
st.button()

# 创建标题.
st.header()

# 创建一个文件上传控件。
st.file_uploader()

end

更多关于Streamlit API的信息,请参考

https://docs.streamlit.io/

https://cheat-sheet.streamlit.app/

第三方组件

https://streamlit.io/components

zero

自2022年9月搭建博客,至今2024年细算已有一年有余。其间数次意欲证明己身实力,post篇技术文章。奈何脑中文字所得尽数拾人牙慧,一无所长,以至于达不到理想中的原创文章。我能轻松学会的知识、技术,为何别人不能学会,我能写出的博客,为何别人写不出。一念之间想法打消,怔怔空对文档,对博客的热情也淡了下来。文章标题为zero-blog。因为过去的一无所获,无一可数,只好从零数起开始反省。反思我在已经得到所有想要的东西后还能想要什么,在失去得不到的东西后还能再失去什么。心中剩下的只有对于电子设备的热情,这情绪的由来早已遗忘,还停留的是小时候摸到psp扳机的触感,点击键盘见到flash游戏的新鲜感。那时觉得电脑键盘是永远都玩不腻的玩具,中学接触信息课是这么想,填写志愿是这么想,多少学了点皮毛技术的现在也是。恐怕我一生都会这么想,这个人可以离开很多东西,但早已经离不开计算机和游戏了。如今不敢回想2021年的夏天,那是第一次拥有一台笔记本电脑,有机会天天摸到键盘,学习编程,那是连键盘盲打都不会,鼠标也用不顺手,却依然对控制台输出星号三角形乐此不疲的时间。这样的体验带来的感觉虽然不再常有,但我还有的是时间去找感觉。

ps

搭建博客参考的文章。

  1. 攻城狮杰森的博客搭建教程
  2. 观月真由理的Hexo主题Shoka