用HTML为Flask应用程序创建动态Url



我试图在html中创建动态url并路由所有"订单/<key_id[0]>"给flaks app.

在浏览器上的超链接应该链接到name,但它应该路由为"orders/<key_id[0]>">

尝试了很多东西都无法用key_id变量生成href。

尝试创建类似

的内容
<a href="orders + /key_id">{{key_id[0]}<p>{{name[0]}}</p></a></td>

My Base Html Code:

{% for name, sample, date, coord_x, coord_y, key_id in zipped_ %}
<tr>
<td><a href="orders"><p>{{name[0]}}</p></a></td>
<td>{{sample[0]}}</td>
<td><span class="badge badge-danger">{{date[0]}}</span></td>
<td>
<div class="sparkbar" data-color="#00a65a" data-height="20">{{coord_x[0]}},{{coord_y[0]}}</div>
</td>
</tr>  
{% endfor %}

Flask App Routing:

@views.route('/orders')
@views.route('/orders/<key_id>', methods=['GET', 'POST']) # ordersda birşey yazdın ama indexten bir post ya da get gelmiyor sanki
def orders():
print(key_id)
#mycursor.execute("SELECT * FROM processed_data WHERE primary_key IN (%s)",(key_id))
#zip_q = mycursor.fetchall()

return render_template("orders.html", zip_q=zip_q)  

根据您的Jinja版本,有很多方法可以做到这一点。"最兼容的";一种是使用字符串格式化和urlencode过滤器

<a href="{{ 'orders/%s'%key_id|urlencode }}">{{key_id[0]}<p>{{name[0]}}</p></a>

我终于找到了答案。

<a href= {{ url_for('views.orders' , key_id=key_id[0]) }} <p>{{name[0]}}</p></a></td>

使用url_for我可以动态地编辑链接和传递变量给flask:

@views.route('/orders')
@views.route('/orders/<key_id>', methods=['GET', 'POST'])
def orders(key_id):
print(key_id)

我可以烧瓶中的key_id变量应用。