清除网页中的POST
我有一个小的 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,而是一个好的网页开发习惯。