相信很多人都想拥有自己的blog,并且免费部署,目前可选框架太多,如wordpress,hexo,docsify,gradio等等。笔者上面的都用过,但最近更推荐一个新的界面,就是streamlit。

Streamlit 简介与入门指南

什么是 Streamlit?

Streamlit 是一个用于创建数据应用程序的Python库,可以帮助数据科学家、工程师和分析师轻松快速地构建交互式和可视化的数据界面。无需繁琐的前端代码,只需几行简单的Python代码,你就能将你的数据展现得美观而有效。

安装 Streamlit

首先,确保你已经安装了 Python。然后,通过以下命令安装 Streamlit:

1
2
conda activate your-env
pip install streamlit

使用 Streamlit

创建一个简单的应用程序
创建一个基本的 Streamlit 应用程序非常简单。新建一个 Python 文件(例如 app.py),并使用以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import streamlit as st

# 在应用程序中添加文本
st.title("我的第一个 Streamlit 应用程序")
st.write("欢迎使用 Streamlit!这是一个简单的示例。")

# 添加交互元素
user_input = st.text_input("请输入您的姓名:")
st.write("你好,", user_input, "!")

# 绘制图表
import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(100)
plt.hist(data, bins=20)
st.pyplot(plt)

# 显示数据框
import pandas as pd

df = pd.DataFrame({
'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 22]
})

st.write("这是一个简单的数据框:")
st.dataframe(df)

# 添加图表和地图
st.line_chart(np.random.randn(20, 2) + 10)
st.map({'杭州': (30.2500, 120.1500), '北京': (39.9042, 116.4074)})

# 添加侧边栏
st.sidebar.header("侧边栏")
st.sidebar.checkbox("显示/隐藏数据框", True)
selected_data = st.sidebar.selectbox("选择数据", df['姓名'])
st.sidebar.write(f"你选择了 {selected_data}")

# 添加按钮
if st.button("点击我"):
st.write("你点击了按钮!")

# 添加进度条
import time

with st.spinner("加载中..."):
time.sleep(3)
st.success("加载完成!")

# 添加警告和错误
st.warning("这是一个警告信息")
st.error("这是一个错误信息")

然后在终端中运行:streamlit run app.py这将启动一个本地开发服务器,并在默认浏览器中打开应用程序。

指定端口运行

默认情况下,Streamlit 应用程序将在本地的 8501 端口上运行。如果你想更改端口,可以使用 --server.port 参数。例如,要在 8888 端口上运行:

1
streamlit run app.py --server.port 8888

在浏览器中访问 http://localhost:8888 就能看到你的应用程序了。

部署

  1. 首先将你上边的代码整理到github上,新建一个repo同步好。记得要新建一个requirements.txt,里边放好你要用到的包和版本。
  2. 然后streamlit官网注册登录
  3. 点击new app,选择你刚新建的repo,branch,要执行的main文件,
  4. app url填写你想用的域名(免费的)

然后点击deploy即可。

小结

随笔整理,更多api见官网