You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python/Flask获取含模板变量的HTML提交按钮name值?

解决Flask中获取提交按钮对应person.id的问题

先明确HTML属性的选择

你当前把person.id放在按钮的name属性里是可行的,但还有更清晰的实现方式,分两种情况说明:

方案1:保留现有按钮结构

继续用name="{{ person.id }}",按钮显示"x"作为删除标识:

<input type="submit" name="{{ person.id }}" value="x">

方案2:更推荐的结构(清晰易维护)

用隐藏字段存储person.id,按钮统一用固定的name(比如delete),这样后端逻辑更直观:

<form method="POST">
  <input type="hidden" name="person_id" value="{{ person.id }}">
  <input type="submit" name="delete" value="x">
</form>

Flask后端的处理代码

针对方案1的后端逻辑

点击按钮后,request.form里的键就是person.id的值,对应的值是"x"。你之前用request.form.get('x')错误,是因为把value当成了键来取。正确的获取方式是遍历表单键:

from flask import request

# 方式1:遍历找到对应的id(适合多个按钮的场景)
person_id = None
for key in request.form:
    # 假设person.id是整数,可根据实际类型调整判断逻辑
    if key.isdigit():
        person_id = int(key)
        break

# 方式2:直接取第一个键(因为只有被点击的按钮会被提交到表单)
if request.form:
    person_id = next(iter(request.form.keys()))

针对方案2的后端逻辑

这种方式更简单,直接取固定字段即可:

from flask import request

if request.form.get('delete'):  # 判断是否点击了删除按钮
    person_id = request.form.get('person_id')
    # 按需转成整数类型
    person_id = int(person_id)
    # 这里写你的删除逻辑

总结

推荐用方案2,因为固定的按钮name能让后端逻辑更清晰,后续如果加其他操作按钮(比如编辑),也更容易扩展区分。

内容的提问来源于stack exchange,提问作者Mathom Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:35:51