Как отобразить все изображения в папке с HTML, python и cherrypy - PullRequest
0 голосов
/ 27 марта 2012

Я сейчас работаю над веб-приложением / сервером на 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)

Где «большой палец» и «предварительный просмотр» - это выходные данные цикла, в котором каждое мое изображение в папке помещается в правильный формат HTML.

Как вы думаете, это будет работать? И, к сожалению, я понятия не имею, как заставить python сканировать папку на предмет имени файла, а затем отформатировать его в нужный формат. Так что это, вероятно, где мне нужно больше всего помощи.

* * Тысяча двадцать-одиной]

Спасибо, что уделили время заранее!

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Обычно с подобными приложениями файл HTML генерируется на лету для каждого просмотра страницы (и никогда не сохраняется на вашем сервере, а только отправляется пользователю). Поскольку содержимое часто меняется, это определенно рекомендуется. Начните с получения списка всех файлов, которые вы бы обслуживали с os.listdir или os.walk (если вы должны проверить вложенные каталоги). Затем выясните, как представить список файлов на вашей веб-странице.

Если вы спрашиваете, как обнаружить изменения в течение времени, когда у пользователя открыта страница браузера, это гораздо проще. Браузер должен получить обновление с сервера, поэтому вам понадобится JavaScript, который общается с сервисом на вашем сайте, который проверяет папку. Для службы проще всего было бы что-то вычислить и отправить в javascript (например, время последней модификации или MD5-хэш списка имен файлов). Страница пользователя может сравнить его с последним значением и при необходимости перезагрузить.

0 голосов
/ 27 марта 2012

Являетесь ли вы "жестко закодированными" ссылками на все изображения в папке?

На первый взгляд, где два способа решения вашей задачи.

1.Сохраните всю информацию обо всех изображениях в базе данных..

2.Вы можете получить все файлы из своего каталога изображений и добавить их в шаблон.

...