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

求助:基于Flask与AWS RDS MySQL实现HTML表格行的编辑与删除

实现Flask+AWS RDS MySQL的表格数据编辑与删除功能

现有实现回顾

当前已完成表单数据插入AWS RDS MySQL,并在HTML表格展示所有数据,核心代码如下:

Flask 路由代码

@app.route('/insert',methods = ['post'])    
def insert():
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        gender = request.form['optradio']
        comment = request.form['comment']
        db.insert_details(name,email,comment,gender)
        all_details = db.all_data()
        return render_template('index.html',all_details= all_details)

db.py 数据库操作代码

import pymysql
import aws_credentials as rds
conn = pymysql.connect (host='A_RDS_DATABASE.amazonaws.com',
                        user='user',
                        password='Password',
                        database='DB',
                        )

def insert_details(name,email,comment,gender):
    cur=conn.cursor()
    cur.execute("INSERT INTO Details (name,email,comment,gender) VALUES (%s,%s,%s,%s)",(name,email,comment,gender))
    conn.commit()

def all_data():
    cur=conn.cursor()
    cur.execute("SELECT * FROM Details")
    return cur.fetchall()

前端表格展示代码

<table class="GeneratedTable">
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
      <th>Email</th>
      <th>Gender</th>
      <th>Comment</th>
      <th>操作</th> <!-- 新增操作列 -->
    </tr>
  </thead>
  <tbody>
    {% for row in all_details %}
    <tr>
      <td>{{row[0]}}</td>
      <td>{{row[1]}}</td>
      <td>{{row[2]}}</td>
      <td>{{row[3]}}</td>
      <td>{{row[4]}}</td>
      <td>
        <!-- 后续添加编辑、删除按钮 -->
      </td>
    </tr>
    {% endfor %}
  </tbody>
</table>

实现删除功能

1. 在db.py中添加删除数据的函数

def delete_details(id):
    cur=conn.cursor()
    cur.execute("DELETE FROM Details WHERE id = %s", (id,))
    conn.commit()

2. 添加Flask删除路由

@app.route('/delete/<int:id>', methods=['GET'])
def delete(id):
    db.delete_details(id)
    all_details = db.all_data()
    return render_template('index.html', all_details=all_details)

3. 前端表格添加删除按钮

在表格的操作列中添加删除链接:

<td>
  <a href="/delete/{{row[0]}}" onclick="return confirm('确定要删除这条数据吗?')">删除</a>
</td>

实现编辑更新功能

1. 在db.py中添加查询单条数据和更新数据的函数

def get_detail_by_id(id):
    cur=conn.cursor()
    cur.execute("SELECT * FROM Details WHERE id = %s", (id,))
    return cur.fetchone()

def update_details(id, name, email, comment, gender):
    cur=conn.cursor()
    cur.execute("UPDATE Details SET name=%s, email=%s, comment=%s, gender=%s WHERE id=%s", 
                (name, email, comment, gender, id))
    conn.commit()

2. 添加Flask编辑路由(GET显示表单,POST提交更新)

@app.route('/edit/<int:id>', methods=['GET', 'POST'])
def edit(id):
    detail = db.get_detail_by_id(id)
    if request.method == 'POST':
        name = request.form['name']
        email = request.form['email']
        gender = request.form['optradio']
        comment = request.form['comment']
        db.update_details(id, name, email, comment, gender)
        all_details = db.all_data()
        return render_template('index.html', all_details=all_details)
    # GET请求返回编辑表单页面
    return render_template('edit.html', detail=detail)

3. 创建编辑表单页面(edit.html)

<!DOCTYPE html>
<html>
<head>
    <title>编辑数据</title>
</head>
<body>
    <h1>编辑数据</h1>
    <form method="POST">
        <div>
            <label>Name:</label>
            <input type="text" name="name" value="{{detail[1]}}" required>
        </div>
        <div>
            <label>Email:</label>
            <input type="email" name="email" value="{{detail[2]}}" required>
        </div>
        <div>
            <label>Gender:</label>
            <input type="radio" name="optradio" value="Male" {% if detail[3] == 'Male' %}checked{% endif %}> Male
            <input type="radio" name="optradio" value="Female" {% if detail[3] == 'Female' %}checked{% endif %}> Female
        </div>
        <div>
            <label>Comment:</label>
            <textarea name="comment" required>{{detail[4]}}</textarea>
        </div>
        <button type="submit">保存修改</button>
        <a href="/">返回列表</a>
    </form>
</body>
</html>

4. 前端表格添加编辑按钮

在操作列中添加编辑链接:

<td>
  <a href="/edit/{{row[0]}}">编辑</a>
  <a href="/delete/{{row[0]}}" onclick="return confirm('确定要删除这条数据吗?')">删除</a>
</td>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:30:43