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

Python利用Streamlit構(gòu)建一個簡單的照片墻應(yīng)用

 更新時間:2025年04月24日 08:49:03   作者:winfredzhang  
在現(xiàn)代 web 開發(fā)中,快速構(gòu)建交互式應(yīng)用是一項重要的技能,Streamlit 是一個強(qiáng)大的 Python 庫,允許開發(fā)者以最小的代碼量創(chuàng)建美觀且功能豐富的 web 應(yīng)用,今天,我們將通過分析一段簡單的 Streamlit 代碼,展示如何構(gòu)建一個照片墻應(yīng)用,需要的朋友可以參考下

代碼分析

以下是我們將要分析的代碼,這是一個基于 Streamlit 的照片墻應(yīng)用:

import streamlit as st
from PIL import Image
import os
 
# 頁面標(biāo)題
st.title("優(yōu)美的照片墻")
 
# 創(chuàng)建文件上傳控件
uploaded_files = st.file_uploader("上傳圖片文件", type=["jpg", "jpeg", "png"], accept_multiple_files=True)
 
# 顯示照片墻
if uploaded_files:
    st.subheader("照片墻展示")
    cols = st.columns(4)  # 設(shè)置列數(shù),可根據(jù)需要調(diào)整
 
    # 遍歷上傳的圖片文件
    for i, uploaded_file in enumerate(uploaded_files):
        # 使用 PIL 打開圖片
        image = Image.open(uploaded_file)
        
        # 將圖片顯示在列中
        with cols[i % 4]:  # 控制圖片排列,每行顯示4列
            st.image(image, use_column_width=True)
else:
    st.warning("請上傳圖片文件以生成照片墻!")

代碼功能分解

  1. 導(dǎo)入必要的庫

    • streamlit as st:Streamlit 庫,用于構(gòu)建交互式 web 界面。
    • PIL.Image:Python Imaging Library(Pillow),用于處理圖片文件。
    • os:雖然代碼中未直接使用 os,但導(dǎo)入它可能是為了后續(xù)可能的擴(kuò)展(如文件路徑操作)。
  2. 設(shè)置頁面標(biāo)題

    • st.title("優(yōu)美的照片墻"):在頁面頂部顯示一個標(biāo)題,簡潔明了地告訴用戶這是一個照片墻應(yīng)用。
  3. 文件上傳控件

    • st.file_uploader:創(chuàng)建一個文件上傳控件,限制文件類型為常見的圖片格式(jpg、jpeg、png),并允許用戶一次上傳多個文件(accept_multiple_files=True)。
  4. 條件渲染照片墻

    • 如果用戶上傳了圖片(if uploaded_files),則顯示一個子標(biāo)題“照片墻展示”并創(chuàng)建一個包含 4 列的網(wǎng)格布局(st.columns(4))。
    • 如果沒有上傳圖片,則顯示警告信息(st.warning),提示用戶上傳圖片。
  5. 遍歷并顯示圖片

    • 使用 enumerate 遍歷上傳的文件列表,獲取索引 i 和文件對象 uploaded_file
    • 使用 PIL.Image.open 打開圖片文件。
    • 通過 i % 4 將圖片分配到 4 列中的一列,確保圖片按順序填充網(wǎng)格。
    • st.image(image, use_column_width=True):將圖片顯示在指定列中,并自動調(diào)整大小以適應(yīng)列寬。

代碼的優(yōu)點

  • 簡潔易懂:代碼結(jié)構(gòu)清晰,邏輯簡單,適合初學(xué)者學(xué)習(xí)。
  • 響應(yīng)式設(shè)計:通過 use_column_width=True,圖片會自動適應(yīng)列寬,確保在不同設(shè)備上顯示良好。
  • 用戶友好:提供明確的提示信息(如警告),提升用戶體驗。
  • 可擴(kuò)展性:代碼邏輯簡單,可以輕松添加新功能,如調(diào)整列數(shù)、添加圖片濾鏡等。

代碼的改進(jìn)空間

  1. 錯誤處理

    • 當(dāng)前代碼未處理上傳無效圖片文件的情況(如損壞的圖片文件)??梢蕴砑?nbsp;try-except 塊來捕獲異常并提示用戶。
    • 示例改進(jìn):
try:
    image = Image.open(uploaded_file)
    with cols[i % 4]:
        st.image(image, use_column_width=True)
except Exception as e:
    st.error(f"無法加載圖片 {uploaded_file.name}:{str(e)}")
  • 動態(tài)列數(shù)
    • 列數(shù)固定為 4,可能不適合所有場景。可以根據(jù)屏幕大小或用戶輸入動態(tài)調(diào)整列數(shù)。
    • 示例改進(jìn):
num_cols = st.slider("選擇列數(shù)", min_value=1, max_value=6, value=4)
cols = st.columns(num_cols)
with cols[i % num_cols]:
    st.image(image, use_column_width=True)
  • 圖片預(yù)覽優(yōu)化
    • 可以添加圖片縮略圖或限制上傳文件大小,以提高性能。
    • 示例改進(jìn):
image = Image.open(uploaded_file).resize((200, 200))  # 調(diào)整為縮略圖
  • 樣式美化
    • Streamlit 支持自定義 CSS,可以為照片墻添加邊框、陰影或動畫效果,提升視覺吸引力。
    • 示例改進(jìn):
st.markdown("""
<style>
img {
    border-radius: 10px;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
}
</style>
""", unsafe_allow_html=True)

如何運(yùn)行這個應(yīng)用

  • 安裝依賴
    確保已安裝 Streamlit 和 Pillow:

pip install streamlit pillow
  • 保存代碼
    將代碼保存為 app.py。

  • 運(yùn)行應(yīng)用
    在終端中運(yùn)行以下命令:

streamlit run app.py
  • 訪問應(yīng)用
    瀏覽器會自動打開 http://localhost:8501,你就可以上傳圖片并查看照片墻了!

運(yùn)行結(jié)果

以上就是Python利用Streamlit構(gòu)建一個簡單的照片墻應(yīng)用的詳細(xì)內(nèi)容,更多關(guān)于Python Streamlit照片墻的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python打包踩坑指南之徹底解決Nuitka --onefile配置文件丟失與重啟報錯問題

    Python打包踩坑指南之徹底解決Nuitka --onefile配置文件丟失與重啟報錯問題

    這篇文章主要為大家詳細(xì)介紹了Python使用Nuitka打包項目出現(xiàn)Nuitka --onefile配置文件丟失與重啟報錯問題的解決,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2026-03-03
  • Django實現(xiàn)全文檢索的方法(支持中文)

    Django實現(xiàn)全文檢索的方法(支持中文)

    這篇文章主要介紹了Django實現(xiàn)全文檢索的方法(支持中文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 基于Python使用永中文檔轉(zhuǎn)換服務(wù)的方式

    基于Python使用永中文檔轉(zhuǎn)換服務(wù)的方式

    這篇文章主要介紹了基于Python使用永中文檔轉(zhuǎn)換服務(wù)的方式,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 淺談python的上下文管理器with的用法

    淺談python的上下文管理器with的用法

    這篇文章主要介紹了淺談python的上下文管理器with的用法,在一段代碼執(zhí)行前, 先執(zhí)行__enter__中的代碼用于預(yù)處理,然后執(zhí)行 with 中間的代碼,最后執(zhí)行完這段代碼之后再執(zhí)行 exit 中的代碼進(jìn)行清理工作,需要的朋友可以參考下
    2023-07-07
  • Windows下pycharm創(chuàng)建Django 項目(虛擬環(huán)境)過程解析

    Windows下pycharm創(chuàng)建Django 項目(虛擬環(huán)境)過程解析

    這篇文章主要介紹了Windows下pycharm創(chuàng)建Django 項目(虛擬環(huán)境)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 一文帶你掌握Matplotlib圖形繪制

    一文帶你掌握Matplotlib圖形繪制

    Matplotlib是一個基于Python的繪圖庫,它提供了一整套與Matlab相似的命令A(yù)PI,非常適合交互式繪圖,這篇文章主要給大家介紹了關(guān)于Matplotlib圖形繪制的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • python使用布隆過濾器的實現(xiàn)示例

    python使用布隆過濾器的實現(xiàn)示例

    這篇文章主要介紹了python使用布隆過濾器的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解Python中第三方庫Faker

    詳解Python中第三方庫Faker

    這篇文章主要介紹了Python中第三方庫-Faker的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • PyTorch中反卷積的用法詳解

    PyTorch中反卷積的用法詳解

    今天小編就為大家分享一篇PyTorch中反卷積的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • CentOS安裝pillow報錯的解決方法

    CentOS安裝pillow報錯的解決方法

    本文給大家分享的是作者在centos下為Python安裝pillow的時候報錯的解決方法,希望對大家能夠有所幫助。
    2016-01-01

最新評論

万载县| 曲靖市| 禹州市| 灵宝市| 银川市| 建德市| 临西县| 仙游县| 赫章县| 新河县| 咸阳市| 曲阳县| 徐闻县| 瑞安市| 屯留县| 图片| 灯塔市| 平泉县| 云林县| 志丹县| 西吉县| 梅州市| 尼勒克县| 伊春市| 桂林市| 巴林左旗| 元江| 鄂托克前旗| 镇巴县| 乌兰察布市| 临夏县| 桐乡市| 惠安县| 若尔盖县| 蓝田县| 沛县| 大悟县| 怀化市| 广饶县| 苍梧县| 常山县|