如何在jinja循环中将单个jinja变量传递给python函数作为参数?

时间:2019-05-19 06:34:49

标签: python html jinja2

我想将jinja循环内的单个jinja变量传递给python函数作为参数。在这种情况下,我需要在jinja循环内将{{book.isbn}}传递给python函数,以便使用此值。

我尝试使用href =“ {{url_for(...)}}”“,但只有在单击链接时才会触发。我需要它在每次循环运行时触发。

{% for book in books %}
   {{ book.isbn }}
{% endfor %}

我想获取{{book.isbn}},以便我可以对其进行处理并根据该值输出另一个变量。我还想对书籍列表中的每个“书籍”值执行此操作,因此,我无法在其他位置手动执行此操作。

1 个答案:

答案 0 :(得分:0)

我认为,如果您在render方法中将函数作为关键字参数传递,它应该可以解决问题。

from jinja2 import Template

template = Template("""
{% for book in books %}
   {{ custom_function(book.isbn) }}
{% endfor %}
""")

from collections import namedtuple
Book = namedtuple('Book', ['name', 'isbn'])

books = [
        Book('a', 1),
        Book('b', 2),
        Book('c', 3)
        ]

def custom_function(isbn):
    return isbn + 1

print(template.render(books=books, custom_function=custom_function))