Python 在Google应用程序引擎中更新投票计数

Python 在Google应用程序引擎中更新投票计数,python,google-app-engine,http,google-cloud-datastore,Python,Google App Engine,Http,Google Cloud Datastore,我正在尝试使用谷歌应用程序引擎为帖子创建一个投票按钮。 目前我正在这样实施它: 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', article

我正在尝试使用谷歌应用程序引擎为帖子创建一个投票按钮。 目前我正在这样实施它:

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>
投票:{{item.voces}
投票+

如果我在投票后尝试刷新页面,我会收到“确认表单提交警报”。必须有更好的方法来实现这一点,而不发生这种情况。是否可以在不重新呈现页面的情况下更新投票计数和数据存储?

刷新POST请求将始终触发确认窗口,这是大多数浏览器中的常见行为。您可以使用AJAX(XMLHTTPRequest)通过Javascript密切控制表单POST请求,这不会导致另一个页面呈现。

刷新POST请求将始终触发确认窗口,这是大多数浏览器中的常见行为。您可以使用AJAX(XMLHTTPRequest)通过Javascript密切控制表单POST请求,这不会导致另一个页面呈现。

刷新POST请求将始终触发确认窗口,这是大多数浏览器中的常见行为。您可以使用AJAX(XMLHTTPRequest)通过Javascript密切控制表单POST请求,这不会导致另一个页面呈现。

刷新POST请求将始终触发确认窗口,这是大多数浏览器中的常见行为。您可以使用AJAX(XMLHTTPRequest)通过Javascript紧密控制表单POST请求,这不会导致另一个页面呈现