1

質問の小さなバージョン:「私は、画像のURLのリストを受け取り、テーブルのhmtlを提供するPythonまたはプログラム(Linuxの場合)用のライブラリが必要です(おそらく設定が簡単です(行と外観))

質問の長いバージョン:私は画像の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 ジェネレーターを使用する必要がありますか?

それとも、HTML のコーディングを改善する必要がありますか?

あなたが私の問題を抱えていたらどうしますか?

これは私が思いついた解決策です(親切なMr MatToufoutuからのコードを採用した後):

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)
4

2 に答える 2

4

これを実現する最も簡単な方法は、 MakoCheetahJinjaなどのテンプレート言語を使用することだと思います。個人的には、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 を作成するよりもはるかに読みやすいです。

于 2010-11-05T14:07:22.963 に答える
0

Jinja2のようなテンプレート エンジンを学ぶために数分を割いてください。コードに集中し、レイアウトは Web デザイナーに任せることができるので、本当にお得です。

于 2010-11-05T14:06:22.800 に答える