Подтвердить что ты не робот

Создание HTML в python

Я ищу способ создания html файлов динамически в python. Я пишу галерею script, которая итерации по каталогам, сбор метаданных файлов. Я намеревался использовать эти данные для автоматического создания галереи изображений на основе html. Что-то очень простое, просто таблица картин.

Я действительно не думаю, что писать в файл вручную - лучший способ, и код может быть очень длинным. Так есть ли лучший способ сделать это, возможно, html?

4b9b3361

Ответ 1

Я думаю, если я понимаю вас правильно, вы можете увидеть здесь.

Ответ 2

Dominate - это библиотека Python для создания HTML-документов и фрагментов непосредственно в коде без использования шаблонов. Вы можете создать простую галерею изображений с чем-то вроде этого:

import glob
from dominate import document
from dominate.tags import *

photos = glob.glob('photos/*.jpg')

with document(title='Photos') as doc:
    h1('Photos')
    for path in photos:
        div(img(src=path), _class='photo')


with open('gallery.html', 'w') as f:
    f.write(doc.render())

Вывод:

<!DOCTYPE html>
<html>
  <head>
    <title>Photos</title>
  </head>
  <body>
    <h1>Photos</h1>
    <div class="photo">
      <img src="photos/IMG_5115.jpg">
    </div>
    <div class="photo">
      <img src="photos/IMG_5117.jpg">
    </div>
  </body>
</html>

Отказ от ответственности: я являюсь автором доминирующего

Ответ 3

Используйте механизм шаблонов, например Genshi или Jinja2.

Ответ 4

Шаблоны, как было предложено в других ответах, вероятно, лучший ответ (я написал ранний, причудливый шаблонный модуль под названием yaptu, но современный зрелые, как предложено в других ответах, вероятно, сделают вас счастливее; -).

Однако, хотя я долгое время использовал его, я с любовью вспоминаю подход Quixote, который примерно равен "обратная шаблонизация" (встраивание HTML-генерации в Python, а не наоборот, как это делает обычный шаблон). Может быть, вам стоит взглянуть и посмотреть, понравится ли вам это лучше, -).