如何防止在数据库中多次提交

时间:2014-10-17 17:35:30

标签: python google-app-engine textarea gql gqlquery

我制作了一个简单的留言簿,其中有<textarea>和提交button。 在短时间内多次单击提交按钮时,相同的数据将多次进入数据库。我该如何防止这种情况?

以下是代码:

def post(self):
    greeting = Greeting(parent=guestbook_key)


    greeting.content = self.request.get('content')
    greeting.put()
    self.redirect('/')

以下是图片,让您知道我在说什么: http://i.gyazo.com/87344b79b1eda82928385a44158d7d0b.png

2 个答案:

答案 0 :(得分:0)

标准方法是在单击“提交”按钮后立即禁用“提交”按钮,然后再调用服务器。然后你重新启用它 - 时间取决于你的应用程序。您可以在服务器调用成功后立即重新启用它,或者当用户返回到同一视图时(如果在单击按钮后显示不同的视图)。

另一种方法是禁用整个UI(例如,在整个屏幕顶部显示阴影玻璃面板),直到服务器响应。

答案 1 :(得分:0)

非常感谢!对此,我真的非常感激。 所以我设法用javascript阻止提交按钮。

以下是代码:

<form onsubmit="JavaScript:document.getElementById('submitbtn').disabled=true" >
<input type="submit" id="submitbtn">
</form>