清除网页中的POST

2 投票
3 回答
1559 浏览
提问于 2025-04-17 14:42

我有一个小的 Python/Django 网站,我在用 HTML 表单发送一些信息。不过,有个烦人的问题是,这些信息是存储在 POST 数据里的。当用户在 IE 或 Chrome 中刷新页面时,就会出现一个警告,提示页面包含 POST 数据。请问我该如何在处理完这些数据后清除 POST 数据,这样用户刷新页面时就不会看到这个警告了呢?

另外,我还有一些逻辑代码可以检测到 POST 请求:

 if request.method == "POST":
     do something

全选

在我实际提交表单的时候,这个逻辑是没问题的,但当我刷新页面时,它也会检测到 POST 请求,然后执行我现在不想执行的逻辑。请问我该如何解决这个问题呢?

谢谢!

3 个回答

0

正如Rohan所说,你应该使用 HttpResponseRedirect。不过你也可以用一个更简单的方法:

from django.shortcuts import redirect

def some_view(request):
    if request.method == 'POST':
        # do smth
        return redirect('/page-with-form/')
0

在表单验证通过后,如果一切正常,就可以把用户引导到另一个页面,比如成功页面,或者重新加载当前页面。这样做可以避免出现重复提交表单的问题。想了解更多,可以点击这里

0

当你处理一个POST请求并返回响应时,应该使用 HttpResponseRedirect。在 教程4 中有详细说明:

在增加选择计数后,代码返回的是一个 HttpResponseRedirect,而不是普通的 HttpResponse。HttpResponseRedirect 只需要一个参数:用户将被重定向到的URL(接下来会讲解我们是如何构建这个URL的)。

正如上面的Python注释所说,在成功处理POST数据后,你应该始终返回一个 HttpResponseRedirect。这条建议不仅适用于Django,而是一个好的网页开发习惯。

撰写回答