最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python開源庫?Streamlit?應(yīng)用案例

 更新時間:2025年09月22日 15:48:11   作者:勤奮的知更鳥  
Streamlit是一個開源Python框架,專為數(shù)據(jù)科學(xué)家和工程師設(shè)計,可快速構(gòu)建交互式Web應(yīng)用,無需前端開發(fā)知識,支持?jǐn)?shù)據(jù)可視化、模型集成、文件上傳及多種部署方式,簡化了數(shù)據(jù)驅(qū)動項目開發(fā)流程,本文給大家介紹Python開源庫Streamlit應(yīng)用案例,感興趣的朋友一起看看吧

一、引言

在當(dāng)今數(shù)據(jù)驅(qū)動的時代,數(shù)據(jù)科學(xué)家和機器學(xué)習(xí)工程師常常面臨一個挑戰(zhàn):如何將他們復(fù)雜而精妙的數(shù)據(jù)分析和模型成果,以一種直觀、交互且易于理解的方式展示給更廣泛的受眾。傳統(tǒng)的 Web 開發(fā)技術(shù)雖然強大,但對于專注于數(shù)據(jù)處理和算法的專業(yè)人員來說,往往需要投入大量的時間和精力去學(xué)習(xí)和掌握 HTML、CSS、JavaScript 等前端技術(shù),這無疑增加了額外的負(fù)擔(dān),分散了他們在核心業(yè)務(wù)上的注意力。

Streamlit 的出現(xiàn),猶如一道曙光,為這一困境提供了完美的解決方案。它是一個開源的 Python 框架,旨在讓數(shù)據(jù)科學(xué)家和機器學(xué)習(xí)工程師能夠快速、輕松地創(chuàng)建交互式 Web 應(yīng)用程序,而無需深厚的前端開發(fā)背景。通過 Streamlit,只需使用熟悉的 Python 語言,就能將數(shù)據(jù)分析腳本轉(zhuǎn)化為功能齊全、美觀大方的 Web 應(yīng)用,實現(xiàn)數(shù)據(jù)可視化、用戶交互以及模型部署等多種功能,極大地提高了工作效率,加速了數(shù)據(jù)驅(qū)動項目的開發(fā)和落地。

二、Streamlit 基礎(chǔ)入門

2.1 安裝 Streamlit

安裝 Streamlit 非常簡單,如果你已經(jīng)安裝了 Python 和 pip(Python 的包管理工具),那么在命令行中輸入以下命令即可完成安裝:

pip install streamlit

安裝過程中,pip 會自動下載并安裝 Streamlit 及其所有依賴項。安裝完成后,可以通過以下命令來驗證安裝是否成功:

streamlit hello

執(zhí)行上述命令后,Streamlit 會啟動一個示例應(yīng)用程序,并在默認(rèn)瀏覽器中打開該應(yīng)用。這個示例應(yīng)用展示了 Streamlit 的一些基本功能和特性,讓你對 Streamlit 有一個初步的直觀感受。如果能夠正??吹绞纠龖?yīng)用的頁面,說明 Streamlit 已經(jīng)成功安裝在你的系統(tǒng)中,可以開始使用它來創(chuàng)建自己的應(yīng)用程序了。

2.2 第一個 Streamlit 應(yīng)用

下面我們通過一個簡單的 “Hello, Streamlit!” 應(yīng)用來了解 Streamlit 應(yīng)用的基本結(jié)構(gòu)和創(chuàng)建過程。創(chuàng)建一個新的 Python 文件,例如命名為hello_streamlit.py,在文件中輸入以下代碼:

import streamlit as st
# 設(shè)置頁面標(biāo)題
st.title('Hello, Streamlit!')
# 顯示一段文本
st.write('This is my first Streamlit app.')

上述代碼中,首先導(dǎo)入了 Streamlit 庫,并將其別名為st,這是使用 Streamlit 的標(biāo)準(zhǔn)做法。然后使用st.title()函數(shù)設(shè)置了應(yīng)用的頁面標(biāo)題為 “Hello, Streamlit!”,st.write()函數(shù)用于在頁面上顯示一段文本內(nèi)容。

保存好代碼后,在命令行中進(jìn)入到該 Python 文件所在的目錄,然后執(zhí)行以下命令來運行這個 Streamlit 應(yīng)用:

streamlit run hello_streamlit.py

命令執(zhí)行后,Streamlit 會啟動一個本地服務(wù)器,并自動在默認(rèn)瀏覽器中打開應(yīng)用頁面。你將看到頁面上顯示著設(shè)置的標(biāo)題和文本內(nèi)容,這就是一個最簡單的 Streamlit 應(yīng)用。每次修改代碼并保存后,Streamlit 應(yīng)用會自動實時更新頁面顯示,無需手動重啟服務(wù)器,這大大提高了開發(fā)效率,讓你能夠快速看到代碼修改后的效果。

2.3 Streamlit 應(yīng)用的運行機制

當(dāng)你執(zhí)行streamlit run命令時,Streamlit 會啟動一個本地服務(wù)器。這個服務(wù)器會讀取你編寫的 Python 腳本,并解析其中的 Streamlit 代碼。Streamlit 會根據(jù)代碼中定義的各種元素(如標(biāo)題、文本、圖表、交互組件等),在瀏覽器端生成相應(yīng)的 HTML、CSS 和 JavaScript 代碼,從而構(gòu)建出一個完整的 Web 應(yīng)用界面。

Streamlit 的一個重要特性是實時更新。它會持續(xù)監(jiān)控 Python 腳本文件的變化,一旦檢測到文件被修改并保存,就會立即重新運行腳本,并將新的界面更新推送到瀏覽器端。這種實時反饋機制使得開發(fā)過程變得非常流暢,你可以快速嘗試不同的想法,修改代碼后馬上就能看到效果,就像在使用一個交互式的 Python shell 一樣方便。同時,Streamlit 還負(fù)責(zé)處理與瀏覽器的通信、用戶輸入的接收和處理等底層細(xì)節(jié),開發(fā)者無需關(guān)心這些復(fù)雜的 Web 開發(fā)技術(shù),只需專注于用 Python 編寫應(yīng)用的邏輯和展示內(nèi)容即可。

三、Streamlit 核心功能詳解

3.1 豐富的文本與標(biāo)題展示

在 Streamlit 中,文本和標(biāo)題的展示是構(gòu)建應(yīng)用的基礎(chǔ)。除了前面示例中使用的st.title()和st.write()函數(shù)外,還有其他多種方式來呈現(xiàn)不同樣式和層次的文本。

  • st.header():用于創(chuàng)建一級標(biāo)題,字體大小小于st.title(),通常用于劃分頁面的主要部分。例如:
st.header('This is a header')
  • st.subheader():創(chuàng)建二級標(biāo)題,字體大小小于st.header(),用于進(jìn)一步細(xì)分內(nèi)容。示例:
st.subheader('This is a subheader')
  • st.markdown():這個函數(shù)非常強大,它允許你使用 Markdown 語法來編寫文本內(nèi)容。Markdown 是一種輕量級的標(biāo)記語言,通過簡單的符號(如#表示標(biāo)題,*表示列表等)就能創(chuàng)建出具有豐富格式的文本。例如:
st.markdown('### This is a Markdown - style header')
st.markdown('* This is an item in an unordered list')
st.markdown('1. This is an item in an ordered list')

通過st.markdown(),你可以輕松實現(xiàn)文本的加粗、斜體、鏈接、圖片嵌入等復(fù)雜格式。例如,要顯示加粗文本可以使用**text**,顯示斜體文本可以使用*text*,添加鏈接可以使用[link text](url)的格式。

3.2 數(shù)據(jù)可視化

數(shù)據(jù)可視化是 Streamlit 的一大核心功能,它使得數(shù)據(jù)科學(xué)家能夠?qū)?fù)雜的數(shù)據(jù)以直觀、易懂的圖表形式展示出來。Streamlit 支持多種流行的數(shù)據(jù)可視化庫,如 Matplotlib、Seaborn、Plotly、Altair 等,并且能夠與這些庫無縫集成,讓你可以使用熟悉的繪圖語法在 Streamlit 應(yīng)用中創(chuàng)建精美的可視化圖表。

  • 使用 Matplotlib 進(jìn)行可視化:Matplotlib 是 Python 中最常用的繪圖庫之一。在 Streamlit 中使用 Matplotlib 非常簡單,首先需要導(dǎo)入 Matplotlib 庫,然后創(chuàng)建圖表對象并進(jìn)行繪圖操作,最后使用st.pyplot()函數(shù)將圖表顯示在 Streamlit 應(yīng)用中。例如,繪制一個簡單的折線圖:
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
# 生成數(shù)據(jù)
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 創(chuàng)建圖表
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Sine Wave')
ax.set_xlabel('X')
ax.set_ylabel('Y')
# 在Streamlit中顯示圖表
st.pyplot(fig)
  • 使用 Seaborn 進(jìn)行可視化:Seaborn 是基于 Matplotlib 的統(tǒng)計數(shù)據(jù)可視化庫,它提供了更高級、美觀的繪圖風(fēng)格。同樣,在 Streamlit 中使用 Seaborn 也很便捷。例如,繪制一個 Seaborn 的散點圖:
import streamlit as st
import seaborn as sns
import pandas as pd
import numpy as np
# 生成數(shù)據(jù)
data = pd.DataFrame({'x': np.random.randn(100),'y': np.random.randn(100)
})
# 創(chuàng)建Seaborn散點圖
fig, ax = plt.subplots()
sns.scatterplot(x='x', y='y', data=data, ax=ax)
ax.set_title('Scatter Plot')
# 在Streamlit中顯示圖表
st.pyplot(fig)
  • 使用 Plotly 創(chuàng)建交互式圖表:Plotly 生成的圖表具有交互性,用戶可以在瀏覽器中通過鼠標(biāo)操作(如縮放、平移、懸停查看數(shù)據(jù)點信息等)來更好地探索數(shù)據(jù)。在 Streamlit 中使用 Plotly,首先要導(dǎo)入 Plotly 庫,然后創(chuàng)建 Plotly 圖表對象,最后使用st.plotly_chart()函數(shù)展示圖表。例如,創(chuàng)建一個 Plotly 的柱狀圖:
import streamlit as st
import plotly.express as px
import pandas as pd
# 生成數(shù)據(jù)
data = pd.DataFrame({
'Category': ['A', 'B', 'C', 'D'],
'Value': [25, 40, 15, 30]
})
# 創(chuàng)建Plotly柱狀圖
fig = px.bar(data, x='Category', y='Value', title='Bar Chart')
# 在Streamlit中顯示圖表
st.plotly_chart(fig)
  • 使用 Altair 進(jìn)行可視化:Altair 是一個聲明式統(tǒng)計可視化庫,其語法簡潔直觀。在 Streamlit 中使用 Altair 時,創(chuàng)建好 Altair 圖表對象后,使用st.altair_chart()函數(shù)進(jìn)行展示。例如,繪制一個 Altair 的折線圖:
import streamlit as st
import altair as alt
import pandas as pd
import numpy as np
# 生成數(shù)據(jù)
data = pd.DataFrame({
'x': np.linspace(0, 10, 100),
'y': np.sin(np.linspace(0, 10, 100))
})
# 創(chuàng)建Altair折線圖
chart = alt.Chart(data).mark_line().encode(
x='x',y='y'
).properties(title='Altair Line Chart')
# 在Streamlit中顯示圖表
st.altair_chart(chart)

3.3 交互式組件

Streamlit 提供了豐富的交互式組件,這些組件允許用戶與應(yīng)用進(jìn)行交互,從而實現(xiàn)更加動態(tài)和個性化的數(shù)據(jù)展示與分析。通過這些交互式組件,用戶可以輸入數(shù)據(jù)、選擇選項、調(diào)整參數(shù)等,應(yīng)用會根據(jù)用戶的操作實時更新顯示內(nèi)容。

  • 按鈕(Button):st.button()函數(shù)用于創(chuàng)建一個按鈕。當(dāng)按鈕被點擊時,可以觸發(fā)相應(yīng)的操作。例如,創(chuàng)建一個簡單的按鈕,并在按鈕被點擊時顯示一條消息:
import streamlit as st
if st.button('Click me'):
  st.write('You clicked the button!')
  • 文本輸入框(Text Input):st.text_input()函數(shù)創(chuàng)建一個文本輸入框,用戶可以在其中輸入文本內(nèi)容。應(yīng)用可以獲取用戶輸入的文本并進(jìn)行處理。例如,獲取用戶輸入的名字并進(jìn)行問候:
import streamlit as st
name = st.text_input('Enter your name')
if name:
  st.write(f'Hello, {name}!')
  • 數(shù)字輸入框(Number Input):st.number_input()函數(shù)用于創(chuàng)建一個數(shù)字輸入框,用戶可以在其中輸入數(shù)字。可以設(shè)置輸入框的最小值、最大值、默認(rèn)值等參數(shù)。例如,創(chuàng)建一個數(shù)字輸入框,讓用戶輸入年齡:
import streamlit as st
age = st.number_input('Enter your age', min_value = 0, max_value = 120, value = 25)
st.write(f'Your age is {age}')
  • 滑塊(Slider):st.slider()函數(shù)創(chuàng)建一個滑塊,用戶可以通過拖動滑塊來選擇一個范圍內(nèi)的值。可以設(shè)置滑塊的最小值、最大值、步長、默認(rèn)值等。例如,使用滑塊來調(diào)整正弦波的頻率:
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
# 設(shè)置頁面標(biāo)題
st.title('Sine Wave with Adjustable Frequency')
# 創(chuàng)建滑塊,允許用戶調(diào)整頻率
frequency = st.slider('Select frequency:', 1, 10, 5)
# 生成數(shù)據(jù)
x = np.linspace(0, 2 * np.pi, 1000)
y = np.sin(frequency * x)
# 繪制圖表
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Sine Wave')
ax.set_xlabel('X')
ax.set_ylabel('Y')
# 在Streamlit中顯示圖表
st.pyplot(fig)
  • 下拉選擇框(Selectbox):st.selectbox()函數(shù)創(chuàng)建一個下拉選擇框,用戶可以從預(yù)定義的選項中選擇一個。例如,創(chuàng)建一個下拉選擇框,讓用戶選擇喜歡的顏色:
import streamlit as st
colors = ['Red', 'Green', 'Blue', 'Yellow']
selected_color = st.selectbox('Select your favorite color', colors)
st.write(f'You selected {selected_color}')
  • 多選框(Multiselect):st.multiselect()函數(shù)創(chuàng)建一個多選框,用戶可以從多個選項中選擇一個或多個。例如,創(chuàng)建一個多選框,讓用戶選擇喜歡的水果:
import streamlit as st
fruits = ['Apple', 'Banana', 'Orange', 'Mango', 'Strawberry']
selected_fruits = st.multiselect('Select your favorite fruits', fruits)
st.write(f'You selected {selected_fruits}')
  • 復(fù)選框(Checkbox):st.checkbox()函數(shù)創(chuàng)建一個復(fù)選框,用戶可以勾選或取消勾選。例如,使用復(fù)選框來控制圖表的顯示:
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
# 設(shè)置頁面標(biāo)題
st.title('Show/Hide Plot')
# 創(chuàng)建復(fù)選框
show_plot = st.checkbox('Show plot')
if show_plot:
# 生成數(shù)據(jù)
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 繪制圖表
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Sine Wave')
ax.set_xlabel('X')
ax.set_ylabel('Y')
# 在Streamlit中顯示圖表
st.pyplot(fig)

3.4 文件上傳功能

在數(shù)據(jù)處理和分析中,經(jīng)常需要處理用戶上傳的文件。Streamlit 提供了便捷的文件上傳功能,允許用戶將本地文件上傳到應(yīng)用中進(jìn)行處理。使用st.file_uploader()函數(shù)可以創(chuàng)建一個文件上傳組件。例如,創(chuàng)建一個文件上傳組件,用于上傳 CSV 文件,并讀取和顯示文件內(nèi)容:

import streamlit as st
import pandas as pd
# 設(shè)置頁面標(biāo)題
st.title('File Upload Example')
# 創(chuàng)建文件上傳組件
uploaded_file = st.file_uploader('Choose a CSV file', type=['csv'])
if uploaded_file is not None:
try:
# 使用pandas讀取CSV文件
data = pd.read_csv(uploaded_file)
st.write('File uploaded successfully. Here is the data:')
st.dataframe(data)
except Exception as e:
st.write(f'Error reading the file: {e}')

上述代碼中,st.file_uploader()函數(shù)的第一個參數(shù)是上傳組件的標(biāo)題,type=['csv']表示只允許上傳 CSV 文件。當(dāng)用戶選擇并上傳一個文件后,uploaded_file變量將包含上傳文件的相關(guān)信息。通過pd.read_csv(uploaded_file)可以讀取 CSV 文件的內(nèi)容,并使用st.dataframe()函數(shù)將數(shù)據(jù)以表格形式顯示在應(yīng)用頁面上。如果讀取文件過程中出現(xiàn)錯誤,會捕獲異常并顯示相應(yīng)的錯誤信息。Streamlit 還支持上傳其他類型的文件,如 Excel 文件(使用pandas的read_excel函數(shù)讀?。?、圖像文件(使用PIL庫或OpenCV庫進(jìn)行處理)等,具體的處理方式根據(jù)文件類型和業(yè)務(wù)需求而定。

3.5 布局與容器

合理的布局和容器使用可以使 Streamlit 應(yīng)用的界面更加整潔、美觀和易于使用。Streamlit 提供了多種布局和容器選項,幫助你更好地組織應(yīng)用中的元素。

  • 列布局(Columns):使用st.columns()函數(shù)可以將頁面分為多列,在每一列中可以獨立放置不同的組件。例如,創(chuàng)建兩列布局,在第一列中顯示一個標(biāo)題,在第二列中顯示一個按鈕:
import streamlit as st
# 創(chuàng)建兩列布局
col1, col2 = st.columns(2)
with col1:
st.title('Column 1')
with col2:
if st.button('Button in Column 2'):
st.write('Button in Column 2 clicked')

st.columns()函數(shù)接受一個整數(shù)參數(shù),表示要創(chuàng)建的列數(shù)。這里將頁面分為兩列,通過with語句分別在不同的列中添加組件。列的寬度會根據(jù)內(nèi)容自動調(diào)整,也可以通過傳遞一個包含列寬比例的列表來指定列寬。例如,col1, col2 = st.columns([3, 1])表示第一列寬度是第二列寬度的三倍。

  • 容器(Container):st.container()函數(shù)創(chuàng)建一個容器,你可以在容器中放置多個組件,將相關(guān)的組件組合在一起。容器可以幫助你更好地組織和管理應(yīng)用的結(jié)構(gòu)。例如,創(chuàng)建一個容器,在容器中添加標(biāo)題、文本和按鈕:
import streamlit as st
# 創(chuàng)建容器
container = st.container()
with container:
  st.title('Container Example')
  st.write('This is some text inside the container.')
  if st.button('Button in Container'):
    st.write('Button in container clicked')

容器可以嵌套使用,從而創(chuàng)建更復(fù)雜的布局結(jié)構(gòu)。例如,可以在一個容器中再創(chuàng)建列布局,然后在列中放置其他組件。

  • 側(cè)邊欄(Sidebar):側(cè)邊欄是 Streamlit 應(yīng)用中常用的布局元素,通常用于放置導(dǎo)航菜單、配置選項等。使用st.sidebar屬性可以在側(cè)邊欄中添加各種組件。例如,在側(cè)邊欄中添加一個標(biāo)題和一個下拉選擇框:
import streamlit as st
# 在側(cè)邊欄添加標(biāo)題
st.sidebar.title("應(yīng)用設(shè)置")
# 在側(cè)邊欄添加下拉選擇框
option = st.sidebar.selectbox(
    '請選擇一個選項',
    ['選項1', '選項2', '選項3', '選項4']
)
# 在主界面顯示選擇結(jié)果
st.write(f'你選擇了: {option}')

四、Streamlit 高級特性

**

4.1 狀態(tài)管理

在復(fù)雜的 Streamlit 應(yīng)用中,管理用戶交互產(chǎn)生的狀態(tài)至關(guān)重要。Streamlit 提供了st.session_state來幫助開發(fā)者處理狀態(tài)相關(guān)的問題。st.session_state是一個類似于字典的對象,用于存儲和管理應(yīng)用運行過程中的各種狀態(tài)信息,比如用戶輸入的值、按鈕的點擊次數(shù)、數(shù)據(jù)的處理中間結(jié)果等 。

舉個例子,實現(xiàn)一個簡單的計數(shù)器功能:

import streamlit as st
if 'count' not in st.session_state:
st.session_state.count = 0
def increment():
st.session_state.count += 1
st.button('Increment', on_click=increment)
st.write(f'Count: {st.session_state.count}')

在上述代碼中,首先檢查st.session_state中是否存在count鍵,如果不存在則初始化其值為 0。當(dāng)用戶點擊按鈕時,觸發(fā)increment函數(shù),更新st.session_state.count的值,從而實現(xiàn)計數(shù)器的功能。并且,即使頁面因用戶的其他操作重新加載,st.session_state中的狀態(tài)也會被保留,確保應(yīng)用狀態(tài)的一致性。

4.2 自定義主題

Streamlit 默認(rèn)提供了簡潔的主題樣式,但開發(fā)者可以根據(jù)項目需求和個人喜好來自定義應(yīng)用的主題。通過創(chuàng)建并配置.streamlit/config.toml文件,能夠修改應(yīng)用的背景顏色、字體樣式、組件顏色等外觀屬性。

創(chuàng)建.streamlit文件夾(如果不存在),在其中新建config.toml文件,并添加以下內(nèi)容來修改主題:

[theme]
base = "light"
primaryColor = "#FF5733"
backgroundColor = "#F8F9FA"
secondaryBackgroundColor = "#E9ECEF"
textColor = "#212529"
font = "sans serif"

上述配置中,base設(shè)置主題為淺色模式;primaryColor定義了主要顏色;backgroundColor和secondaryBackgroundColor分別設(shè)置背景和二級背景顏色;textColor設(shè)置文本顏色;font指定字體。保存文件后,重新運行 Streamlit 應(yīng)用,就能看到自定義主題的效果。此外,還可以通過編程的方式在 Python 代碼中動態(tài)設(shè)置主題,為應(yīng)用提供更靈活的外觀定制方案。

4.3 與機器學(xué)習(xí)模型集成

Streamlit 強大之處還在于能夠輕松集成機器學(xué)習(xí)模型,將模型預(yù)測功能嵌入到 Web 應(yīng)用中,實現(xiàn)模型的可視化部署。以 Scikit-learn 庫訓(xùn)練的簡單線性回歸模型為例,展示如何進(jìn)行集成:

import streamlit as st
import numpy as np
from sklearn.linear_model import LinearRegression
# 生成模擬數(shù)據(jù)
x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([2, 4, 6, 8, 10])
# 訓(xùn)練線性回歸模型
model = LinearRegression()
model.fit(x, y)
# Streamlit應(yīng)用
st.title("線性回歸預(yù)測")
user_input = st.number_input("輸入x值", min_value=0.0, max_value=10.0)
if user_input:
input_data = np.array([user_input]).reshape(-1, 1)
prediction = model.predict(input_data)
st.write(f"預(yù)測的y值為: {prediction[0]}")

在這個示例中,先使用 Scikit-learn 訓(xùn)練一個簡單的線性回歸模型,然后在 Streamlit 應(yīng)用中創(chuàng)建一個數(shù)字輸入框接收用戶輸入的x值,將該值傳入訓(xùn)練好的模型進(jìn)行預(yù)測,并展示預(yù)測結(jié)果。實際應(yīng)用中,無論是復(fù)雜的深度學(xué)習(xí)模型,還是其他機器學(xué)習(xí)模型,都可以通過類似的方式與 Streamlit 集成,為用戶提供直觀的模型預(yù)測交互界面。

五、Streamlit 應(yīng)用部署

完成本地開發(fā)后,需要將 Streamlit 應(yīng)用部署到服務(wù)器上,以便讓更多用戶訪問。以下是幾種常見的部署方式:

5.1 Streamlit 社區(qū)云

Streamlit 社區(qū)云是最便捷的部署方式,它完全免費且無需配置服務(wù)器。只需將應(yīng)用代碼上傳到 GitHub 倉庫,然后在 Streamlit 社區(qū)云平臺進(jìn)行簡單的鏈接設(shè)置,即可完成部署。具體步驟如下:

  1. 將 Streamlit 應(yīng)用的所有代碼和依賴項(如requirements.txt文件)上傳到一個公開的 GitHub 倉庫。
  1. 訪問 Streamlit 社區(qū)云網(wǎng)站,使用 GitHub 賬號登錄。
  1. 按照平臺提示,選擇要部署的 GitHub 倉庫,配置相關(guān)參數(shù)(如分支、運行命令等)。
  1. 點擊部署按鈕,等待平臺自動構(gòu)建和部署應(yīng)用,部署完成后即可獲得應(yīng)用的訪問鏈接。

5.2 部署到 Heroku

Heroku 是一個流行的云平臺即服務(wù)(PaaS),支持多種編程語言應(yīng)用的部署。部署 Streamlit 應(yīng)用到 Heroku 的步驟如下:

  1. 注冊并安裝 Heroku 命令行工具。
  1. 在應(yīng)用項目目錄下,創(chuàng)建Procfile文件(無文件擴展名),并添加內(nèi)容web: streamlit run your_app.pyyour_app.py替換為實際的應(yīng)用主文件)。
  1. 創(chuàng)建requirements.txt文件,列出應(yīng)用所需的所有 Python 依賴項,如streamlit、numpy、pandas等。
  1. 初始化 Git 倉庫(如果尚未初始化),提交代碼更改。
  1. 使用 Heroku 命令行工具登錄賬號,創(chuàng)建新的應(yīng)用實例,將本地代碼推送到 Heroku 遠(yuǎn)程倉庫,觸發(fā)應(yīng)用的構(gòu)建和部署。

5.3 其他云平臺

除了上述方式,還可以將 Streamlit 應(yīng)用部署到 AWS、Google Cloud Platform、Microsoft Azure 等主流云平臺。以 AWS 為例,通常需要創(chuàng)建 EC2 實例或使用 AWS Elastic Beanstalk 等服務(wù),配置 Python 運行環(huán)境,安裝 Streamlit 及其依賴,上傳應(yīng)用代碼,并進(jìn)行端口映射等相關(guān)配置,從而實現(xiàn)應(yīng)用的穩(wěn)定運行和對外訪問 。

六、Streamlit 實際應(yīng)用案例

6.1 數(shù)據(jù)探索與分析應(yīng)用

某電商公司使用 Streamlit 開發(fā)了一個數(shù)據(jù)探索應(yīng)用,幫助業(yè)務(wù)人員快速分析銷售數(shù)據(jù)。通過文件上傳功能,業(yè)務(wù)人員可以上傳不同時間段的銷售 CSV 文件。應(yīng)用中利用交互式組件,如日期選擇器篩選銷售日期范圍,下拉選擇框選擇產(chǎn)品類別;結(jié)合數(shù)據(jù)可視化庫,以柱狀圖展示各產(chǎn)品銷售額對比,折線圖呈現(xiàn)銷售額隨時間的變化趨勢。通過這些功能,業(yè)務(wù)人員能夠直觀地發(fā)現(xiàn)銷售數(shù)據(jù)中的規(guī)律和問題,為決策提供有力支持。

6.2 機器學(xué)習(xí)模型演示應(yīng)用

一個機器學(xué)習(xí)研究團隊開發(fā)了一個圖像分類模型,使用 Streamlit 創(chuàng)建應(yīng)用來演示模型的效果。用戶可以通過文件上傳功能上傳本地圖片,應(yīng)用將圖片傳入模型進(jìn)行分類預(yù)測,并在頁面上顯示原始圖片和預(yù)測結(jié)果。同時,應(yīng)用還展示了模型的訓(xùn)練數(shù)據(jù)信息、評估指標(biāo)等內(nèi)容,方便用戶了解模型的性能和特點,這種直觀的演示方式有助于向非技術(shù)人員展示機器學(xué)習(xí)模型的價值。

七、總結(jié)與展望

Streamlit 憑借其簡單易用、功能強大的特點,成為數(shù)據(jù)科學(xué)家和機器學(xué)習(xí)工程師進(jìn)行快速原型開發(fā)和應(yīng)用部署的首選工具之一。從基礎(chǔ)的安裝使用、豐富的核心功能,到高級的狀態(tài)管理、主題定制以及與機器學(xué)習(xí)模型的集成,再到多種靈活的部署方式和豐富的實際應(yīng)用案例,Streamlit 為數(shù)據(jù)驅(qū)動的 Web 應(yīng)用開發(fā)提供了一站式解決方案。

隨著開源社區(qū)的不斷發(fā)展和更新迭代,未來 Streamlit 有望引入更多創(chuàng)新功能,進(jìn)一步優(yōu)化性能和用戶體驗,與更多的工具和平臺實現(xiàn)深度集成。無論是數(shù)據(jù)科學(xué)領(lǐng)域的新手還是經(jīng)驗豐富的專業(yè)人士,都能在 Streamlit 的世界中找到屬于自己的應(yīng)用開發(fā)樂趣和價值,讓數(shù)據(jù)和模型以更直觀、更交互的方式展現(xiàn)出來,推動數(shù)據(jù)驅(qū)動的創(chuàng)新和發(fā)展。

八、合規(guī)建議

Streamlit采用**Apache License 2.0**開源許可協(xié)議, 完整許可文本見:https://github.com/streamlit/streamlit/blob/main/LICENSE

九、參考資料

《Python 前端框架/工具合集》

到此這篇關(guān)于Python開源庫 Streamlit 詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Python開源庫 Streamlit內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

衡阳县| 广宗县| 英山县| 阳城县| 房产| 湖南省| 新津县| 司法| 禹城市| 奉节县| 福泉市| 文化| 泸西县| 景宁| 盐山县| 额尔古纳市| 宣武区| 监利县| 安溪县| 墨玉县| 綦江县| 游戏| 乐平市| 华亭县| 玉田县| 定兴县| 东阿县| 阜阳市| 山阴县| 剑川县| 新竹市| 高安市| 交口县| 徐水县| 云安县| 怀仁县| 上杭县| 修武县| 略阳县| 绥棱县| 庄河市|