2012-03-27 170 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

相关问题