Python 如何使用django禁止返回或刷新
这是我的代码:Python 如何使用django禁止返回或刷新,python,django,Python,Django,这是我的代码: def to_complete(request): return MobileResponseRedirect('/battle/complete/') def complete(request): do_something() return MobileResponse(html) 但这种方法不能防止倒退 我在完成中做了一件重要的事情(比如在游戏中增加金钱) 我不希望用户刷新页面或返回到父页面 我能做什么 谢谢我看到了几个选项: 您可以在执行以下操作
def to_complete(request):
return MobileResponseRedirect('/battle/complete/')
def complete(request):
do_something()
return MobileResponse(html)
但这种方法不能防止倒退
我在完成中做了一件重要的事情(比如在游戏中增加金钱)
我不希望用户刷新页面或返回到父页面
我能做什么
谢谢我看到了几个选项:
您可以在执行以下操作()后再次重定向:
如果仍然担心(特别是如果担心用户作弊系统),您应该在服务器上设置某种标志,表明操作已经完成。很难说在了解更多应用程序的情况下如何准确地做到这一点。一个示例可能是,如果用户执行了某些操作(例如,节拍a关卡),并记录该操作已发生,则仅允许该完整操作发生,以便该级别的节拍操作只能发生一次完整操作
一个简单的想法是使用会话变量,如下所示:
def to_complete(request):
if request.session.has_key("complete_pending"):
return HttpResponseForbidden()
request.session["complete_pending"] = True
return MobileResponseRedirect('/battle/complete/')
def complete(request):
if not request.session.get("complete_pending", False):
return HttpResponseForbidden()
request.session["complete_pending"] = False
do_something()
return MobileResponse(html)
这种方法允许用户在中只输入一次,以完成和完成。如果希望用户再次输入,只需取消设置会话变量
def to_complete(request):
if request.session.has_key("complete_pending"):
return HttpResponseForbidden()
request.session["complete_pending"] = True
return MobileResponseRedirect('/battle/complete/')
def complete(request):
if not request.session.get("complete_pending", False):
return HttpResponseForbidden()
request.session["complete_pending"] = False
do_something()
return MobileResponse(html)