首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML生成器,库生成器还是模板?

HTML生成器,库生成器还是模板?
EN

Stack Overflow用户
提问于 2010-11-05 13:43:52
回答 2查看 471关注 0票数 1

小版本的问题:“我需要一个用于python或程序的库(pref.forlinux),它接收图像的urls列表,并为表提供hmtl (可能很容易配置(行和外观))。

问题的长版本:我有一个列表,其中包含一个用于图像的url's列表,并且我想要创建一个(我不知道这是否是最佳实践,但我认为这是最简单的)。我不在乎大拇指是否和大的一样(只是被迫变小)。我不需要把图像复制到任何地方。

我使用以下代码(http://.....jpg“,"http://.....jpg"):”d= )

代码语言:javascript
复制
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

(我知道代码很模糊,如果是奇数,它会跳过最后一个代码.但这是咖啡因推动的代码,我只需要把它做好.没有什么值得我骄傲的:)我知道一定有更好的方法(而且更漂亮..。因为这看起来很难看),还有一种我可以指定列数和其他选项的方法。

我无法为我的案例找到一个库生成器(我所测试的全部将文件复制到新目录)。我应该学习模板lang吗?值得吗?

或者我应该使用HTML

还是我应该考虑更好的HTML编码?

,如果你有我的问题,你会怎么做?

这是我想出的解决方案(在添加了MatToufoutu先生的代码之后):

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-05 14:07:22

我认为实现这一目标的最简单方法是使用模板语言,如马科猎豹金佳。就我个人而言,我会选择Jinja,因为它非常类似Django模板语言,但它们都非常强大。

使用Jinja是您想要的一个非常简单的示例,如下所示:

代码语言:javascript
复制
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要容易读得多,就像您做的那样。

票数 4
EN

Stack Overflow用户

发布于 2010-11-05 14:06:22

花几分钟学习像Jinja2这样的模板引擎。它真的很有用,因为你可以专注于代码,把布局留给网页设计师。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4106367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档