我正在尝试使用Google App Engine为帖子创建投票按钮。 目前我正在实施它:
class Latest(Handler):
def get(self):
posts = recent_posts()
qt = memcache.get('recent_posts_qt')
if qt:
qt = time.time() - qt
self.render('latest.html', articles = posts, qt = qt)
def post(self):
post_id = int(self.request.get("id"))
q = AllPost.get_by_id(post_id)
q.votes += 1
q.put()
time.sleep(0.5)
update = recent_posts(update=True) # for memcache
posts = db.GqlQuery("SELECT * FROM AllPost ORDER BY created DESC LIMIT 10")
posts = list(posts)
self.render('latest.html', articles=posts)
我正在使用的HTML是:
<div class="article-votes">Votes: {{item.votes}}
<form action="/latest" method="post">
<input name="id" value={{item.key().id()}}>
<button>Vote+</button>
</form>
</div>
如果我在投票后尝试刷新页面,我会收到&#34;确认表单提交提醒&#34;。如果不发生这种情况,必须有更好的方法来实现这一点。是否可以更新投票计数和数据存储区而无需再次呈现页面?
答案 0 :(得分:3)
刷新POST请求将始终触发该确认窗口,这在大多数浏览器中都是常见的行为。您可以使用AJAX(XMLHTTPRequest)通过Javascript密切控制表单POST请求,这不会导致另一个页面呈现。