2012-03-27 76 views
0

我目前正在使用python和cherrypy開發Web應用程序/服務器。如何使用HTML,python和cherrypy顯示文件夾中的所有圖像

現在,我一直在試圖創建一種畫廊頁面。對於每一張照片,我已經實現了下面的HTML代碼:

<div> class="gallery" align="center"> 
    <div class="thumbnails"> 
    <img onmouseover="preview.src=img1.src" id="img1" src="../img/1" alt="Image Not Loaded"/> 
    <img onmouseover="preview.src=img2.src" id="img2" src="../img/2" alt="Image Not Loaded"/> 
    </div> 
<br/> 
    <div class="preview" align="center"> 
    <img id="preview" src="../img/1" alt="No Image Loaded"/> 
    <img id="preview" src="../img/2" alt="No Image Loaded"/> 
    </div> 
</div> 

這一切都工作的很好,但在我的web應用程序的另一種方法允許用戶將照片添加到該文件夾​​。 (或者我有時可以手動添加照片到文件夾中)。編輯:[這個文件夾只是我的電腦/服務器上的一個目錄,我想要在庫中顯示所有照片。]這意味着文件夾中的照片數量不斷變化。

我想知道是否有某種方法可以讓python檢測文件夾中有多少照片,並動態地自動將這些照片添加到此HTML腳本中?

EDIT [

我想改變我的HTML腳本的:

<div> class="gallery" align="center"> 
    <div class="thumbnails"> 
    $$THUMB 
    </div> 
<br/> 
    <div class="preview" align="center"> 
    $$PREVIEW 
    </div> 
</div> 

然後實現某種python中循環的,用於掃描圖像的整個文件夾。其次

page = page.replace ("$$THUMB", thumb) 
page = page.replace ("$$PREVIEW", preview) 

當「拇指」和「預覽」是把每一個形象,我有文件夾中到正確的HTML格式的環路的輸出。

您認爲這樣會起作用嗎?不幸的是,我不知道如何讓python掃描一個名稱爲文件的文件夾,然後將其格式化爲正確的格式。所以這可能是我需要最多幫助的地方。

]

非常感謝您的提前!

回答

0

通常使用此類應用程序時,HTML文件將在每個頁面視圖中隨時生成(並且永遠不會存儲在服務器上,只會發送給用戶)。由於內容頻繁變化,所以絕對推薦。首先獲取您要使用os.listdiros.walk的所有文件的列表(如果您必須檢查嵌套目錄)。然後弄清楚如何在網頁上顯示文件列表。

如果您要求在期間如何檢測的變化,那麼用戶打開瀏覽器頁面的時間並不那麼簡單。瀏覽器需要從服務器獲取更新,因此您需要一些JavaScript與您的網站上的服務進行交談,以檢查該文件夾。最簡單的方法是讓服務計算某些內容並將其發送給JavaScript(例如,上次修改時間或文件名列表的MD5哈希)。用戶的頁面可以將其與上一個值進行比較,並根據需要重新加載。

+0

感謝您的澄清。我想我所問的是如何以上述格式爲每個頁面生成HTML? – Synia 2012-03-27 21:18:19

+0

我還在原始問題中添加了更多信息,請閱讀。 – Synia 2012-03-27 21:33:46

0

你是否在文件夾中的所有圖像上的「硬編碼」鏈接?

在第一眼看哪裏有兩種方式來決定你的任務。

1.保存有關數據庫中所有圖像的所有信息。

2.您可以從您的圖像目錄中獲取所有文件並將它們添加到模板中。

+0

目前圖像被「硬編碼」到html腳本中。但我希望有一種方法來動態改變它。 – Synia 2012-03-27 21:22:37

+0

我已將更多信息添加到原始問題中,請看看。 – Synia 2012-03-28 22:03:11

+0

Cherrypy對於初學者不好的框架,但你應該嘗試使用像mako http://www.makotemplates.org/或其他模板系統。但是如果你開始使用更像用戶友好的框架,比如Django,會更好。 – Denis 2012-03-29 10:47:14

相關問題