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

如何仅用Django、Python、JS和HTML实现按钮清空数据库数据

实现点击按钮清空Django数据库中FTP数据的方案

按照你的需求,我们可以通过后端视图处理删除请求、前端发送异步请求的方式实现,全程只用Python、JavaScript和HTML,步骤如下:

1. 新增后端清空数据的视图函数

在views.py中添加一个处理清空请求的函数,负责接收前端的POST请求并删除FTP模型的所有数据:

from django.http import JsonResponse
from django.views.decorators.csrf import ensure_csrf_cookie
from .models import FTP

@ensure_csrf_cookie  # 确保前端能获取CSRF Token
def clear_ftp_data(request):
    if request.method == 'POST':
        FTP.objects.all().delete()
        return JsonResponse({'status': 'success', 'message': '所有数据已清空'})
    return JsonResponse({'status': 'error', 'message': '仅支持POST请求'}, status=400)

2. 配置URL路由

在项目的urls.py中添加对应的路由,将清空请求映射到上面的视图:

from django.urls import path
from . import views

urlpatterns = [
    path('ftp-table/', views.ftptable, name='ftp_table'),
    path('clear-ftp/', views.clear_ftp_data, name='clear_ftp'),  # 新增这条路由
]

3. 前端添加清空按钮和交互逻辑

在你的ftp.html中添加清空按钮,并编写JavaScript发送异步请求,请求成功后更新页面表格:

3.1 添加清空按钮

在表格上方或合适位置添加按钮:

<button id="clearBtn" style="padding: 8px 16px; margin-bottom: 10px;">清空所有FTP数据</button>

<!-- 原有的表格代码 -->
<table id="mytable" border="1" cellpadding="2">
    <thead>
        <th>Src_Fname</th>
        <th>Dest_Fname</th>
        <th>Bytes_Xfer</th>
        <th>Xfer_Sec</th>
        <th>Xfer_MBPS</th>
    </thead>
    <tbody id="tablebody">
    {% for ftp in filetp %}
    <tr>
        <td>{{ ftp.Src_Fname }}</td>
        <td>{{ ftp.Dest_Fname }}</td>
        <td>{{ ftp.Bytes_Xfer }}</td>
        <td>{{ ftp.Xfer_Sec }}</td>
        <td>{{ ftp.Xfer_MBPS }}</td>
    </tr>
    {% endfor %}
    </tbody>
</table>

3.2 添加JavaScript逻辑

在HTML底部添加脚本,处理按钮点击事件,发送POST请求并更新页面:

<!-- 先添加CSRF Token,用于Django的CSRF保护 -->
{% csrf_token %}

<script>
document.getElementById('clearBtn').addEventListener('click', function() {
    // 确认清空操作,避免误触
    if (!confirm('确定要清空所有数据吗?此操作不可恢复!')) {
        return;
    }

    // 获取CSRF Token
    const csrfToken = document.querySelector('[name=csrfmiddlewaretoken]').value;

    fetch('/clear-ftp/', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'X-CSRFToken': csrfToken
        },
    })
    .then(response => response.json())
    .then(data => {
        if (data.status === 'success') {
            // 清空表格内容
            document.getElementById('tablebody').innerHTML = '';
            alert(data.message);
        } else {
            alert('清空失败:' + data.message);
        }
    })
    .catch(error => {
        console.error('请求出错:', error);
        alert('请求失败,请重试');
    });
});
</script>

4. 测试功能

启动Django服务后,进入FTP表格页面,点击清空按钮,确认后即可删除数据库中所有FTP数据,同时页面表格会被清空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:45:42