如何在flask jinja2模板中使用python函数?

rav*_*raj 3 html python user-interface jinja2 flask

我使用 Flask jinja2 模板将一个列表列表发送到我的 HTML 页面。我想检查:- 列表中的项目是否属于 str 类型?但得到一个例外

jinja2.exceptions.UndefinedError:“isinstance”未定义

代码如下:-

{% for i in req%}

    <tr>
        <th scope="row">{{loop.index}}</th>
        <td>{{i[1]}}</td>
        <td>{{i[24]}}</td>
        <td>{{i[49]}}</td>
        <td>{{i[53]}}</td>
        {% if isinstance(i[86], str) %}
            {% for j in i[86].split(",") %}
                <ol>
                    <li>{{i[86]}}</li>
                </ol>
            {% endfor %}
        {% else %}
            <td>{{i[86]}}</td>
        {% endif %}

    </tr>

    {% endfor %}
Run Code Online (Sandbox Code Playgroud)

我能够在 jinja 2 模板中使用split(",")函数并希望使用 pythonisinstance()或。str()

ngS*_*.py 5

jinja 模板中的语言实际上并不是 python,它看起来像 python,这意味着 python 内置函数不存在。要使 python 内置函数出现在每个模板中,请在启动时将任何所需的内置函数添加到globals构建jinja2.Environment. 像下面这样:

app.jinja_env.globals.update(isinstance=isinstance)
Run Code Online (Sandbox Code Playgroud)

或者

import jinja2
env = jinja2.Environment()
env.globals.update(isinstance:isinstance)
Run Code Online (Sandbox Code Playgroud)