如何在烧瓶 Jinja2 模板中加密 ID



我正在接受来自 python 文件的记录集,并使用 for 循环显示烧瓶 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 %}

通常,将加密函数注册为过滤器

from jinja2 import Environment
def encryptdata(data):
return data.upper()
env = Environment()
env.filters['encryptdata'] = encryptdata

由于您使用的是烧瓶,因此只需用app.template_filter装饰过滤器

@app.template_filter('encryptdata')
def encryptdata(data):
return data.upper()

过滤器的烧瓶文档。

最新更新