我使用yattag创建HTML,在我的代码中,我希望循环数据库记录,并动态地创建HTML表。在
例如,如果中的div数为5:
with tag('table', klass='all-pr'):
with tag('tr'):
with tag('td'):
for zone in all_zones:
clear += 1
with tag('div', klass='pr' + ' ' + risk_alert):
text(zone['name'])
with tag('div', klass='link-pr'):
text('-')
if (clear % 5 == 0):
# create a new <tr>
更新: 好的,我期望的html是:
^{pr2}$CSS的(部分):
.link-pk, .pr {
text-align: center;
float: left;
margin-top: 5px;
padding: 5px;
width : 25px
}
然后,我用PDFKIT库将HTML转换成PDF格式。在
但我不知道如何关闭一个标记并(重新)创建一个新的,然后继续循环。。。 有什么想法吗?在
谢谢, F
所以问题不在于Yattag,对吧?你的问题是把元素分成5组(或任何固定的数字)。 为此,我将使用itertools模块中的
islice
方法。在您有一个示例,说明如何使用此函数创建一个
take
函数,该函数接受iterable的第一个n
元素:https://docs.python.org/3/library/itertools.html#itertools-recipes
使用这个
take
函数,您可以按一组n
元素使用iterable。以下是解决您特定问题的方法:我使用了Yattag的
line
方法,这是这里描述的一个快捷方式:http://www.yattag.org/#shortcut-for-nodes-that-contain-only-text相关问题 更多 >
编程相关推荐