【问题标题】:How to display all the images in a folder with HTML, python and cherrypy如何使用 HTML、python 和cherrypy 显示文件夹中的所有图像
【发布时间】:2012-04-10 21:03:20
【问题描述】:

我目前正在使用 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>

一切都很好,除了我的网络应用程序中的另一种方法允许用户将照片添加到文件夹中。 (或者我有时可以手动将照片添加到文件夹中)。编辑:[这个文件夹只是我的计算机/服务器上的一个目录,我想在画廊中显示的所有照片都存储在这里。]这意味着文件夹中的照片数量在不断变化。

我想知道 python 是否有某种方法可以检测文件夹中有多少张照片,并动态自动将这些照片添加到这个 HTML 脚本中?

编辑[

我正在考虑将我的 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)

其中“thumb”和“preview”是循环的输出,它将文件夹中的每个图像都转换为正确的 HTML 格式。

你觉得这样行吗?不幸的是,我不知道如何让 python 扫描文件夹中的文件名,然后将其格式化为正确的格式。所以这可能是我最需要帮助的地方。

]

提前感谢您的宝贵时间!

【问题讨论】:

    标签: python html image file cherrypy


    【解决方案1】:

    您是否在文件夹中的所有图像上“硬编码”链接?

    首先看看有两种方法来决定你的任务。

    1.将所有图像的所有信息保存在数据库中。

    2.您可以从图像目录中获取所有文件并将它们添加到模板中。

    【讨论】:

    • 目前图像被“硬编码”到 html 脚本中是的。但我希望有一种方法可以动态改变它。
    • 我在原问题中添加了更多信息,请看一下。
    • Cherrypy 对初学者来说是个糟糕的框架,但你应该尝试使用模板系统,如 mako makotemplates.org 或其他。但是如果你开始使用像 Django 这样对用户更友好的框架会更好。
    【解决方案2】:

    通常对于此类应用程序,HTML 文件将针对每个页面视图动态生成(并且永远不会存储在您的服务器上,只是发送给用户)。由于内容经常变化,这绝对是推荐的。首先获取您将使用os.listdiros.walk 提供的所有文件的列表(如果您必须检查嵌套目录)。然后弄清楚如何在您的网页中显示文件列表。

    如果您要问如何在用户打开浏览器页面时检测更改期间,那么就没有那么简单了。浏览器需要从服务器获取更新,因此您需要一些 javascript 来与您网站上检查文件夹的服务对话。最简单的方法是让服务计算一些东西并将其发送到 javascript(例如,最后修改时间,或文件名列表的 MD5 哈希)。用户的页面可以将其与上一个值进行比较,并根据需要重新加载。

    【讨论】:

    • 感谢您的澄清。我想我要问的是如何以上述格式为每个页面动态生成 HTML?
    • 我还在原始问题中添加了更多信息,请阅读。
    猜你喜欢
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多