Генератор HTML, Генератор галерей или шаблонов? - PullRequest
1 голос
/ 05 ноября 2010

МАЛЕНЬКАЯ ВЕРСИЯ ВОПРОСА : "Мне нужна библиотека для python или программы (предпочтительно для Linux), которая получает список URL для изображений и дает мне hmtl для таблицы (может быть, легконастроить (строки и внешний вид))

ДЛИТЕЛЬНАЯ ВЕРСИЯ ВОПРОСА : у меня есть и массив со списком URL для изображений, и я хочу сделать таблица (я не знаю, является ли это наилучшей практикой, но я думаю, что она самая простая). Мне все равно, если большие пальцы - это тот же файл, что и большой (просто вынуждены быть маленькими)И мне не нужно никуда копировать изображения.

Я использую следующий код (d = ["http: //.....jpg", "http: // .....jpg "," http: //.....jpg "," http: //.....jpg "]):

def  stupidtable(d):
    d = list(set(d))
    antes=' <tr> <td><a href="'
    dp11='"><img src="'
    dp12= '" width="100%" /></a></td> <td><a href="'
    dp21= '"><img src="'
    dp22='" width="100%" /></a></td>'
    bb=['<table border="0"> ']
    ii=len( d)
    i=0
    while i<ii-1:
        bb.append(antes)
        bb.append(d[i])
        bb.append(dp11)
        bb.append(d[i])
        bb.append(dp12)
        bb.append(d[i+1])    
        bb.append(dp21)
        bb.append(d[i+1])
        bb.append(dp22)
        i=i+2
    return bb

(я знаю, что код нечеткий ион пропускает последний, если это нечетное число ... но это код, заправленный кофеином, и мне просто нужно было это сделать ... ничего, чем я горжусь :) Я знаю, что должен быть лучший способ (и красивее ..потому что это выглядит очень некрасиво), и способ, которым я могу указатьколичество столбцов и другие параметры.

Я не смог найти генератор галереи для своего случая (все, что я тестировал, копировало файлы в новый каталог).Должен ли я выучить шаблонный язык ?Стоит ли это того?

Или я должен использовать HTML Generator ?

Или мне стоит взглянуть на лучшее кодирование HTML?

ЧтоВы бы сделали, если бы у вас была моя проблема?

Это решение, которое я придумал (после принятия кода от доброго мистера Маттуфуту):

from jinja2 import Template

my_template = Template("""
<html>
<style type="text/css">
   img {border: none;}
</style>
<body>
<table border="0" cellpadding="0" and cellspacing="0">
<tr>
{% for url in urls %}
<td><a href="{{ url }}"><img width="100%" src="{{ url }}"/></td>
{% if loop.index is divisibleby cols %}
</tr><tr>
{% endif %}
{% endfor %}
</tr>
</table>
""")

cols=3
urls =["./a.jpg","./a.jpg","./a.jpg","./a.jpg","./a.jpg","./a.jpg","./a.jpg"]
html = my_template.render(cols=cols,urls=urls)

Ответы [ 2 ]

4 голосов
/ 05 ноября 2010

Я думаю, что самый простой способ добиться этого - использовать язык шаблонов, такой как Мако , Гепард или Джинджа . Лично я бы выбрал Jinja, потому что он очень похож на язык шаблонов Django, но все они очень мощные.

Очень простой пример того, что вы хотите, используя Jinja, будет выглядеть так:

from jinja2 import Template

my_template = Template("""
<html>
<body>
<table border="0">
<tr>
{% for url in urls %}
<td><a href="{{ url }}">{{ url }}</td>
{% endfor %}
</tr>
</table>
""")

urls = ["http://.....jpg","http://.....jpg","http://.....jpg","http://.....jpg"]
rendered_html = my_template.render(urls=urls)

Что гораздо удобнее для чтения, чем создание HTML вручную, как вы.

0 голосов
/ 05 ноября 2010

Потратьте несколько минут на изучение механизма шаблонов, например Jinja2 .Это действительно окупается, потому что вы можете сосредоточиться на коде и оставить макет для веб-дизайнеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...