是否有任何方法可以根据表行中的其他参数动态更改 url_for 内部的函数名称。例如,考虑以下内容:
{% for ii in User.Channel %}
<tr>
<td><b>{{loop.index0+1}}</b></td>
<td><b>{{ii}}</b></td>
<td><a href="{{ url_for('variable function depending on ii') }}"> {{ii}}</a></td>
</tr>
{% endfor %}
因此,如果User.Channel(它是类型类)表示频道名称,则如果ii是“ Youtube”,那么我们转到Youtube函数,如果ii是“ Google”,那么我们转到Google函数。 (请记住,ii看起来像一个字符串,但它是类型类。) 一种方法是使用我猜想的if语句,但是这种方法无法扩展,应该说
if (ii == 'Youtube'):
href="{{url_for("Youtube")}}"
我在想的另一种方法是将实际参数传递给Jinja 2模板,如下所示:
{% for ii in User.Channel %}
<tr>
<td><b>{{loop.index0+1}}</b></td>
<td><b>{{ii}}</b></td>
<td><a href="{{ url_for('%s'| format(ii)) }}"> {{ii}}</a></td>
</tr>
{% endfor %}
然后在view.py中创建与ii名称相对应的路由。但是我还是不知道将ii作为字符串传递,并且使其在循环迭代后发生变化。在上面的名称函数中也添加一个“”(因为ii是类型类,应该转换为字符串)。
如果有人告诉我是否有办法在烧瓶中进行此操作(动态更改函数名称),或者有人建议使用其他方法来实现类似功能的方法,我将不胜感激。
编辑: ii 是类型类变量,应强制转换为字符串。它看起来像字符串。例如ii是“ Youtube”,“ Google”。