streamlit(python構(gòu)建web)之環(huán)境搭建過程

前言
在微信的訂閱號文章中偶然看到了一篇對于streamlit的介紹,因?yàn)榇藥鞂τ趯W(xué)習(xí)過Javaweb和pythonweb開發(fā)的我來說,我個人認(rèn)為比起python的flask等框架來說,streamlit 能夠快速開發(fā)web程序用于開發(fā)安全掃描工具提供了極大的便利,在看到它的應(yīng)用后,讓我眼前一亮.
1. 什么是Streamlit?
Streamlit是一個專為數(shù)據(jù)科學(xué)家設(shè)計(jì)的開源Python庫,它通過提供直觀的API簡化了將數(shù)據(jù)分析腳本轉(zhuǎn)化為完全功能的Web應(yīng)用的過程。
使用Streamlit,開發(fā)者可以輕松地添加交互式組件,如滑塊、下拉菜單和文本輸入框,以收集用戶輸入,同時能夠動態(tài)地展示圖表、圖像、數(shù)據(jù)表格和文本,從而創(chuàng)建出既美觀又實(shí)用的數(shù)據(jù)驅(qū)動應(yīng)用。
Streamlit的應(yīng)用范圍廣泛,從快速原型開發(fā)到復(fù)雜的數(shù)據(jù)儀表板,都可以通過它來實(shí)現(xiàn),極大地提高了開發(fā)效率并降低了技術(shù)門檻。
2. Streamlit的原理
Streamlit的工作原理基于Python的Jupyter Notebook。它通過將Python腳本轉(zhuǎn)換為交互式Web應(yīng)用,讓復(fù)雜的數(shù)據(jù)處理和分析過程變得可視化和可交互。Streamlit應(yīng)用的運(yùn)行依賴于一個簡單的Web服務(wù)器,這使得它易于部署和分享。
Jupyter Notebook 可以理解為筆記應(yīng)用,每一段代碼之間,可以獨(dú)立運(yùn)行下面用anaconda中內(nèi)置的工具做個 Jupyter Notebook 演示.

如下圖所示,隨便用我寫的兩個小demo進(jìn)行演示:, Jupyter Notebook 可以分別對代碼片段進(jìn)行運(yùn)行,是數(shù)據(jù)分析科學(xué)家常常用的工具,當(dāng)然本篇介紹的不是這個,也就簡單介紹一下,可以運(yùn)行不同的代碼片段,并將運(yùn)行的結(jié)果,包括數(shù)據(jù),表格,甚至圖表以及第三方庫例如Pandas、Matplotlib、Seaborn、Pyecharts等的效果也可進(jìn)行展示,因此廣為使用.

2.1 demo1-運(yùn)行計(jì)時程序
import time
def main():
# 記錄開始時間
start_time = time.time()
time.sleep(2) # 模擬耗時2秒的任務(wù)
# 記錄結(jié)束時間
end_time = time.time()
# 計(jì)算并打印執(zhí)行時間
print(f"程序運(yùn)行時間: {end_time - start_time} 秒")
if __name__ == "__main__":
main()2.2 demo2-隨即密碼生成器
import random
import string
def generate_password(length=10):
# 定義密碼字符集,包括大小寫字母和數(shù)字
characters = string.ascii_letters + string.digits
# 使用random.choices隨機(jī)選擇字符
password = ''.join(random.choices(characters, k=length))
return password
# 生成并打印密碼
password = generate_password()
print("生成的隨機(jī)密碼是:", password)3. 安裝Streamlit
3.1 安裝方式一
直接進(jìn)行dos命令安裝,這種需要自己有配置好的python環(huán)境,這里我使用PyCharm的專業(yè)版進(jìn)行使用,當(dāng)然社區(qū)版也是可以的,這里我使用了prowershell也就是管理員名令環(huán)境,如果遇到無法安裝,也可自行在管理員窗口下運(yùn)行.
安裝Streamlit非常簡單,只需要一行命令:
pip install streamlit

3.2 安裝方式二
3.2.1 安裝 conda
- 前往 Download Anaconda Distribution | Anaconda ,選擇與你操作系統(tǒng)(Windows, Mac 或 Linux)對應(yīng)的
conda版本 - 下載安裝器并運(yùn)行,完成
conda的安裝
3.2.2 新建一個 conda 環(huán)境
現(xiàn)在你已經(jīng)裝好了 conda ,讓我們來創(chuàng)建一個 conda 環(huán)境來管理所有 Python 庫依賴。
比如按照如下指令,使用 Python 3.9 版本創(chuàng)建一個新的環(huán)境:
conda create -n stenv python=3.9
其中 create -n stenv 表示創(chuàng)建一個名為 stenv 的 conda 環(huán)境,而 python=3.9 會指定 conda 環(huán)境使用 3.9 版本的 Python。
3.2.3 激活 conda 環(huán)境
要使用上一步剛創(chuàng)建好的名為 stenv 的 conda 環(huán)境,則需要使用如下的命令:
conda activate stenv
3.2.4 安裝 Streamlit 庫
激活環(huán)境之后就是時候安裝 streamlit 庫了:
pip install streamlit
4. 啟動示例 Streamlit 應(yīng)用
通過在命令窗口運(yùn)行下面的命令即可進(jìn)行測試
streamlit hello
出現(xiàn)下面的提示輸入郵箱直接按空格置空即可

瀏覽器會彈出一個web應(yīng)用窗口,說明安裝成功
http://localhost:8501/

下面是streamlit自帶的一些動畫演示,很神奇,并且出乎我的意料
4.1 動畫演示
這個應(yīng)用程序展示了如何使用 Streamlit 來構(gòu)建很酷的動畫。 它顯示基于 Julia 集的動畫分形。使用滑塊 調(diào)整不同的參數(shù)。

4.2 繪畫演示
此演示演示了繪圖和動畫的組合 流光。我們正在一個循環(huán)中生成一堆隨機(jī)數(shù),用于 5 秒。享受!

4.3 映射演示
此演示演示如何使用st.pydeck_chart顯示地理空間數(shù)據(jù)。

4.4 DataFrame 演示
此演示演示如何使用 Pandas DataFrames 進(jìn)行可視化。 (數(shù)據(jù)由聯(lián)合國數(shù)據(jù)瀏覽器提供)

總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python可視化Matplotlib折線圖plot用法詳解
這篇文章主要為大家介紹了Python可視化中Matplotlib折線圖plot用法的詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步2021-09-09
使用python構(gòu)建WebSocket客戶端的教程詳解
WebSocket是一種在客戶端和服務(wù)器之間實(shí)現(xiàn)雙向通信的協(xié)議,常用于實(shí)時聊天、實(shí)時數(shù)據(jù)更新等場景,Python提供了許多庫來實(shí)現(xiàn) WebSocket客戶端,本教程將介紹如何使用Python構(gòu)建WebSocket客戶端,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)
這篇文章主要介紹了python 生成所有有效的IP地址的方法,幫助大家解答題目,學(xué)習(xí)python,感興趣的朋友可以了解下2020-10-10
Python使用Pillow與OpenCV進(jìn)行圖像處理實(shí)戰(zhàn)
本文詳細(xì)介紹了Python圖像處理的兩大工具Pillow與OpenCV的基本概念、功能及使用技巧,涵蓋圖像讀寫、處理、濾鏡、顏色調(diào)整等目標(biāo)檢測等,并并對比了兩者的優(yōu)勢與應(yīng)用場景,助你輕松應(yīng)對各種圖像處理需求,需要的朋友可以參考下2026-05-05
pytorch模型保存到本地后,如何實(shí)現(xiàn)繼續(xù)訓(xùn)練
在PyTorch中,保存和加載模型對于實(shí)現(xiàn)模型訓(xùn)練的中斷和恢復(fù)非常有用,保存模型主要有兩種方式:一是保存整個模型包括結(jié)構(gòu)與參數(shù);二是僅保存模型的state_dict,加載模型時,若保存了整個模型則直接加載,若僅保存了state_dict,則需先實(shí)例化模型結(jié)構(gòu)后加載2024-09-09
淺談keras中的后端backend及其相關(guān)函數(shù)(K.prod,K.cast)
這篇文章主要介紹了淺談keras中的后端backend及其相關(guān)函數(shù)(K.prod,K.cast),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python+selenium 自動化快手短視頻發(fā)布的實(shí)現(xiàn)過程
這篇文章主要介紹了Python+selenium 自動化快手短視頻發(fā)布,通過調(diào)用已啟用的瀏覽器,可以實(shí)現(xiàn)直接跳過每次的登錄過程,上傳功能的使用方法通過代碼給大家介紹的也非常詳細(xì),需要的朋友可以參考下2021-10-10

