Fading Coder

One Final Commit for the Last Sprint

Home > Notes > Content

使用 Streamlit 快速构建和部署网页

Notes Apr 17 10

利用 Python 也能轻松创建美观的网站?答案是肯定的,Streamlit 可以做到这一点。 Streamlit 是一个能将 Python 脚本快速转化为可分享网站的工具。仅需纯 Python 编程,无需前端开发知识。即使你仅熟悉 markdown,按照特定规则编写也能构建网页。此外,它还支持免费部署。 安装 首先,确保你的计算机已安装 Python 环境。若尚未安装,请访问 Python 官网进行下载并按照相关教程完成安装。 安装 Python 后,使用以下命令安装 Streamlit: pip install streamlit 安装完成后,通过以下命令验证 Streamlit 是否正确安装: streamlit hello 打开浏览器访问 http://192.168.31.83:8502,若看到相应界面,则说明 Streamlit 已成功安装。 运行 安装好 Streamlit 后,创建一个新的文件夹并在此文件夹中创建一个 Python 文件。 使用终端进入该文件夹并运行指定的 Python 文件: streamlit run xxx.py 例如,创建一个名为 streamlit-demo1 的文件夹,并在其中创建一个 page1.py 文件。接着,通过终端进入 streamlit-demo1 目录并执行以下命令: streamlit run page1.py 终端会提示你打开相应的地址,例如 http://localhost:8501。访问此地址后,若看到类似界面,则说明运行成功。 基础用法 接下来,我们将探索 Streamlit 的一些基本用法,其难度与 HTML 类似,但 Streamlit 提供了许多预设样式,减少了编写 CSS 的需求。 使用 Streamlit 之前,需要先导入它: import streamlit as st 段落 段落在 HTML 中对应 <p> 标签,在 Streamlit 中使用 st.write('内容') 来书写: st.write('Hello!') 标题 使用 st.title() 可设置标题内容: st.title('Hello') 与 st.write() 不同,st.title() 生成的内容字号更大且字体加粗。 Markdown Streamlit 支持使用 Markdown 语法编写内容。只需使用单引号或双引号包裹内容,并使用 Markdown 语法即可。 "# 一级标题" "## 二级标题" "### 三级标题" "#### 四级标题" "##### 五级标题" "###### 六级标题"

"""

print('Hello')

"""

图片 渲染图片可以使用 st.image() 方法: st.image('./dog.jpg', width=400) 表格 Streamlit 支持静态表格和交互式表格。 静态表格 使用 st.table() 渲染静态表格: import pandas as pd

data = { "Name": ["Alice", "Bob"], "Age": [25, 30] }

st.table(data)

交互式表格 使用 st.dataframe() 渲染交互式表格: df = pd.DataFrame({ "Name": ["Alice", "Bob"], "Age": [25, 30] })

st.dataframe(df)

分隔线 使用 st.divider() 方法绘制分隔线: st.divider() 变量和条件判断 在 Streamlit 中可以使用 Python 变量和条件判断语句: a = 10 b = 20

if a % 2 == 0: st.write(f'{a} is even') else: st.write(f'{a} is odd')

循环 使用 for 循环: for i in range(1, 10, 2): st.write(i)

输入框 使用 st.text_input() 创建文本输入框: name = st.text_input('Enter you're name:')

if name: st.write(f'Hello, {name}')

数字输入框 使用 st.number_input() 创建数字输入框: age = st.number_input('Age:', value=20, min_value=0, max_value=200, step=1)

st.write(f'You entered age {age}')

多行文本框 使用 st.text_area() 创建多行文本框: paragraph = st.text_area('Enter multiple lines:')

复选框 使用 st.checkbox() 创建复选框: checked = st.checkbox("Agree to terms")

if checked: st.write("Agreed") else: st.write("Not agreed")

单选按钮 使用 st.radio() 创建单选按钮: result = st.radio( "Rate my article", ["Like", "Read more"] )

st.write(f"You selected: {result}")

单选下拉框 使用 st.selectbox() 创建单选下拉框: article = st.selectbox( "Which article do you like?", [ "Python Basics", "Data Analysis with Pandas", "Machine Learning with Scikit-learn" ] )

st.write(f"You selected: {article}")

多选下拉框 使用 st.multiselect() 创建多选下拉框: selected_articles = st.multiselect( "Which articles do you like?", [ "Python Basics", "Data Analysis with Pandas", "Machine Learning with Scikit-learn" ] )

for article in selected_articles: st.write(f"You selected: {article}")

滑块 使用 st.slider() 创建滑块: height = st.slider("Height", value=170, min_value=100, max_value=230, step=1)

st.write(f"Your height is {height}")

按钮 使用 st.button() 创建按钮: clicked = st.button("Click Me")

if clicked: st.write("Button was clicked!")

文件上传 使用 st.file_uploader() 创建文件上传组件: uploaded_file = st.file_uploader("Upload a file", type=["csv", "json"])

if uploaded_file: st.write(f"Uploaded file: {uploaded_file.name}")

侧边栏 使用 st.sidebar 创建侧边栏: with st.sidebar: search_term = st.text_input('Search:')

st.write(f'Search term: {search_term}')

多列布局 使用 st.columns() 创建多列布局: col1, col2, col3 = st.columns(3)

with col1: st.write('Column 1')

with col2: st.write('Column 2')

with col3: st.write('Column 3')

选项卡 使用 st.tabs() 创建选项卡: tab1, tab2, tab3 = st.tabs(['Tab 1', 'Tab 2', 'Tab 3'])

with tab1: st.write('Content of Tab 1')

with tab2: st.write('Content of Tab 2')

with tab3: st.write('Content of Tab 3')

折叠展开组件 使用 st.expander() 创建折叠展开组件: with st.expander('More Info'): st.title('Title') st.write('Some text')

图表 使用 st.line_chart() 绘制折线图: import numpy as np

chart_data = np.random.randn(10, 4)

st.line_chart(chart_data)

多页面 在 Streamlit 中创建多页面应用非常简单:

在根目录创建主页入口文件。 创建名为 pages 的文件夹。

在每个文件中编写内容后,启动应用即可看到多个页面。 部署 按照 Streamlit 官方文档,可以轻松部署应用至 Streamlit Cloud。 注册并登录后,上传代码至 GitHub 仓库,然后在 Streamlit Cloud 上填写相关信息并点击部署即可。

Related Articles

Designing Alertmanager Templates for Prometheus Notifications

How to craft Alertmanager templates to format alert messages, improving clarity and presentation. Alertmanager uses Go’s text/template engine with additional helper functions. Alerting rules referenc...

Deploying a Maven Web Application to Tomcat 9 Using the Tomcat Manager

Tomcat 9 does not provide a dedicated Maven plugin. The Tomcat Manager interface, however, is backward-compatible, so the Tomcat 7 Maven Plugin can be used to deploy to Tomcat 9. This guide shows two...

Skipping Errors in MySQL Asynchronous Replication

When a replica halts because the SQL thread encounters an error, you can resume replication by skipping the problematic event(s). Two common approaches are available. Methods to Skip Errors 1) Skip a...

Leave a Comment

Anonymous

◎Feel free to join the discussion and share your thoughts.