Templates 如何在flask jinja2模板中加密id

Templates 如何在flask jinja2模板中加密id,templates,flask,encryption,jinja2,Templates,Flask,Encryption,Jinja2,我接受python文件中的记录集,并使用for循环在flask jinja模板中显示记录。对于编辑按钮,我需要加密id。如何在模板中调用加密函数 <tbody> {% for record in records %} <tr> <td>{{ loop.index }}</td> <td>{{ record[1] }}</td> <td>{{ record[2] }}</td>

我接受python文件中的记录集,并使用for循环在flask jinja模板中显示记录。对于编辑按钮,我需要加密id。如何在模板中调用加密函数

<tbody>
{% for record in records %}
<tr>
    <td>{{ loop.index }}</td>
    <td>{{ record[1] }}</td>
    <td>{{ record[2] }}</td>
    <td> 
        <a href="{{url_for('edit_country' ,id=record[0])|encryptdata}}" class="label bg-green" >Edit</a> |
        <a href="{{url_for('view_country',id=record[0])}}" class="label bg-red"  onclick="return confirm('Are you sure you want to Delete?');" >Delete</a>
    </td>
</tr>
{% endfor %}

{记录%中的记录的%s}
{{loop.index}}
{{记录[1]}
{{记录[2]}
|
{%endfor%}

通常,将加密功能注册为筛选器

from jinja2 import Environment

def encryptdata(data):
    return data.upper()

env = Environment()
env.filters['encryptdata'] = encryptdata
因为您使用的是烧瓶,所以只需使用app.template\u filter装饰过滤器即可

@app.template_filter('encryptdata')
def encryptdata(data):
    return data.upper()
烧瓶文档