python - 如何使用 Jinja2 iterrows 函数返回 url_for 的多列表行值?

标签 python flask jinja2

在下面的示例中,我为 Column3 中的每个行项目创建 href,并且变量 (var1) 将与其一起发送(效果很好)。我的问题是如何使用 Column1 的变量 (var2) 发送相邻行值?这需要用 jquery 或其他方式处理吗?

下面的 var2 是我想要做的,但目前不确定如何做。

表:

       Column1    Column2    Column3
Row1   Yes        Foo        Bar 
Row2   No         Foo1       Bar3
Row3   Maybe      Foo2       Bar2

应用程序.py:

@app.route('/mypage/<var1>')
def python_function(var1,var2):
    df = pd.DataFrame(lotsofdata)
    return render_template('index.html',data=df)

index.html:

<table id="data">
<thead>
<tr>
{% for c in data.columns.values %}
    <th>{{ c }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for index, row in data.iterrows() %}
    <tr>
        {% for v in row %}
            <td>
            {% if data.columns[loop.index0] in ['Column3'] %}
                <a href="{{ url_for('python_function',var1=v,var2=???) }}">{{ v }}</a>
            {% else %}
                {{ v }}
            {% endif %}
            </td>
        {% endfor %}
    </tr>
{% endfor %}
</tbody>
</table>

最佳答案

要在 jinja 中调用函数,您需要在 __init__.py 中创建一个全局函数

def cool_func(var1, var2):
    return var1 + var2  # or something

app.jinja_env.globals.update(cool_func=cool_func)

那么对于您的示例,您可以替换:

<a href="{{ url_for('python_function',var1=v,var2=???) }}">

与:

<a href={{ cool_func(var1, var2) }}>

关于python - 如何使用 Jinja2 iterrows 函数返回 url_for 的多列表行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43286655/

相关文章:

python - Django刷新页面

javascript - Fusion Charts 未渲染

python - 防止 PyDev 移动特定的导入

python - 属性错误: 'MainHandler' object has no attribute '_render_template'

ansible - 使用 regex_findall 将文本拆分为单词

html - 在 Visual Studio Code 中为 django-html 文件添加格式化程序(美化器)

python - 从 ubuntu 终端命令提示符中删除 anaconda 环境前缀

python - 使 sklearn 中的网格搜索功能忽略空模型

python-3.x - 如何用Flask制作游戏房间?

python - 通过 boto3 : ImproperlyConfigured 使用 Amazon S3 的 Django