在我的flask / jinja2应用程序中,我从数据库中获取了一些行以打印在表中。对于每行,我想为第一项中的行定义一个标识符,用第二项定义该行的类,然后将其余行作为表数据打印。我这样做是可行的,但感觉有点混乱:
Sub determine_delim()
Dim filetocheck As String, firstline As String
Dim ff As Long
filetocheck = "full path and name of file here"
ff = FreeFile
Open filetocheck For Input As ff
Line Input #ff, firstline
Close ff
delimiter = most_popular(firstline)
End Sub
Function most_popular(str As String)
Dim pieces As Variant
Dim cnt As Long, ch as Long
Dim minCount As Long
Dim possibles As String
possibles = "|¦,;" & Chr(9) ' Chr(9)=Tab
For ch = 1 To Len(possibles)
pieces = Split(str, Mid(possibles, ch, 1))
cnt = UBound(pieces)
If minCount < cnt Then
minCount = cnt
most_popular = Mid(possibles, ch, 1)
End If
Next ch
End Function
我想做类似的事情:
possibles
然后使用变量id和class定义行,然后遍历列表的剩余内容。 jinja2有可能吗?
(使用在debian 9上安装的jinja 2.8,但如果情况有所改善,当然可以升级)
答案 0 :(得分:1)
您可以使用它们的索引从数组中获取第一个项目,并将数组的一个切片(例如row[2:]
)用于for循环:
<tr id="rec{{row[0]}}" class="{{row[1]}}" >
{%- for item in row[2:] %}
<td>{{item}}</td>
{% endfor -%}</tr>
答案 1 :(得分:1)
我认为您可以在Jinja模板中使用切片,您可以尝试一下吗,因为我无法测试atm:
<tr id="rec{{row[0]}}"
class="{{row[1]}}" >
{% for item in row[2:] %}
<td>{{item}}</td>
{% endfor -%}
</tr>