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

如何将HTML表单的注册ID传递给Flask实现SQLite用户删除

问题修正方案

你现有代码有几处需要同步调整,按以下步骤修改即可实现功能:

1. 导入Flask必要依赖

在Flask代码顶部先引入请求处理和重定向相关的模块:

from flask import request, redirect, url_for

2. 修正deregister路由代码

需要调整4个核心点:允许POST请求、正确获取表单ID、修正SQL语法、补充事务提交逻辑:

# 增加methods参数允许接收POST请求,匹配你HTML表单的提交方法
@app.route("/deregister", methods=["POST"])
def deregister():
    # 从POST表单中获取name属性为id的隐藏字段值
    value_from_html = request.form.get("id")
    # 修正两处错误:1. execute拼写错误 2. DELETE语法不需要加* 3. 参数需传入元组格式,单个值末尾加逗号
    db.execute("DELETE FROM registrant WHERE id = ?", (value_from_html,))
    # 提交事务,修改才会持久化到SQLite数据库
    db.commit()
    # 删除完成后重定向回注册用户列表页,url_for参数替换为你展示用户列表的路由函数名即可
    return redirect(url_for("你的用户列表路由函数名"))

3. (可选)HTML模板规范修正

你现有HTML里的注释格式不符合Jinja2规范,调整后代码更严谨,不修正也不影响当前功能运行:

<!-- 把原注释行替换为Jinja2标准注释格式 -->
<input name="id" type="hidden" value="{{ registrant.id }}"> {# trying to pass registrant.id to flask #}

内容的提问来源于stack exchange,提问作者islam sulaiman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 06:15:04