繁体   English   中英

如何使用仅使用 DJANGO python、java 脚本和 HTML 的按钮从数据库中删除数据?

[英]How to delete data from database with a button using only DJANGO python, java script, and HTML?

我正在开发一个 django 项目,我的数据库是通过电话后填充的,为了提高生活质量,我希望能够通过单击按钮清除数据库中的所有数据。 如果可能的话,我只想使用 python、javascript 和 HTML。 我在这里做了一些搜索,到目前为止还没有找到任何这样的问题的答案。 这是一个没有答案的类似问题的链接。 有一个问题与我的类似,但 OP 使用的是PHP、jquery 和 SQL ,这对我来说并不理想。 我没有尝试任何代码,因为我不知道从哪里开始。 如果有人对这种事情有所了解,如果您给我一个起点,将不胜感激。

关于渲染我的表格,我使用以下 html 代码:

<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>

这是我的views.py中的后端渲染定义

def ftptable(request):
    filetp = FTP.objects.all()
    return render(request,'ftp.html',{'filetp':filetp})

我的 FTP 对象只是一个将 HTML 代码中的所有变量设置为 char 字段的类。

为此,我只需发出一个 POST 请求并传递一个名为“button”的标头,其名称类似于“Delete All”。 然后在您看来,您可以按照 if request.method == "POST" and button == "Delete All":的方式放置一些内容,以查找按下按钮的时间。 像这样的东西:

在您的模板中 -

<script>
            $.ajax({
                    url: '//' + "/",
                    type: 'POST',
                    headers: {'X-CSRFtoken': '{{ csrf_token }}', 'button':'Delete_All'},
                    data: dict,
                    dataType: 'json'
                })
    </script>

您需要在此处填写您的网址,因为我无法从您上面的代码中看到它

那么,在你看来——

if request.method == "POST":
            button = request.headers.get('Button')

            if button == "Delete_All":
                models = [list of all models here]
                for model in models:
                    model.objects.all().delete

这应该可以很好地擦除数据库中的所有内容,但它不会重置自动递增的 id。 不知道您的应用程序的其余部分是如何布局的,因此如果您需要更完整地删除数据,请直说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM