Python Flask应用中如何将Jinja渲染的HTML元素id传递至后端app.py
Flask获取前端动态ID的实现方案
方案1:URL查询参数传递
这是最简便的实现方式,直接把动态ID拼接在跳转链接的查询参数中:
前端修改
将<a>标签的href属性修改为携带id参数的格式:
<td><a href="/edit?id={{ i+1 }}" id="{{ i+1 }}">Edit</a> <a href="/delete">✖</a></td>
后端接收逻辑
在app.py中通过request.args获取查询参数:
from flask import Flask, request app = Flask(__name__) @app.route('/edit') def edit_handler(): target_id = request.args.get('id') # 此处添加你的业务处理逻辑 return f"待编辑的ID为:{target_id}"
方案2:动态路由参数传递
符合RESTful风格的实现方式,参数直接作为路由的一部分:
前端修改
将动态ID直接拼接在跳转路径中:
<td><a href="/edit/{{ i+1 }}" id="{{ i+1 }}">Edit</a> <a href="/delete">✖</a></td>
后端接收逻辑
在路由中定义参数占位符,直接作为视图函数的入参使用:
from flask import Flask app = Flask(__name__) @app.route('/edit/<int:target_id>') def edit_handler(target_id): # 此处直接使用target_id即可,框架已自动转换为整数类型 return f"待编辑的ID为:{target_id}"
如果参数涉及敏感信息,不想暴露在URL中,可以将a标签替换为绑定点击事件的元素,通过AJAX POST请求携带参数传递,避免参数在浏览器地址栏可见
内容的提问来源于stack exchange,提问作者Upanshu Lakhani
相关产品推荐
相关产品推荐

