Pythonic实时更新网页中的一个元素?

时间:2013-07-16 16:59:34

标签: python flask real-time tornado

在过去的几天里,我开始考虑开始将我的网站变为实时。我看了Gevent(不能使用b / c我使用的是Python 3.3),Tornado和Webalchemy。

Webalchemy和Tornado都是选择。在这个时候,我还没有成功地将他们的代码与我的代码进行网格化...也就是说,我无法获得实时结果。我为自己设定了一个适度的目标:让upvote / downvote自动收报机实时显示。

这是我的upvote功能:

@mod.route('/updebate/<int:entries_did>')
def up_vote(entries_did):
    connection = g.db.session.connection()
    g.db.engine.execute(
        'update users_user set rating = rating + 1 where id in (select id from users_debates where users_debates.did ="{0}")'.format(entries_did))
    g.db.engine.execute(
        'update users_debates set rating = rating + 1 where did = "{0}"'.format(entries_did))
    # g.db.commit()
    return redirect(request.referrer)

正如你所看到的,现在我只是“request.referrer”-ing..definitely不是我想要做的。

以下是我的HTML页面中的代码:

{% for entry in entries %}
    <li><h2>
        <a href="/updebate/{{ entry.did }}" style="text-decoration:none; color:orange;">&#11014;</a>{{ entry.rating }}<a href="/downdebate/{{ entry.did }}" style="text-decoration:none; color:orange;">&#11015;</a><a href="/debate/{{ entry.did }}">{{ entry.title }}</a></h2>{{ entry.text|safe }}

        CREATED BY: {{ entry.name }}
  {% else %}
    <li><em>Unbelievable.  No entries here so far</em>
  {% endfor %}

思想?

2 个答案:

答案 0 :(得分:1)

您可以将技术用作WebSocket以将修改推送到浏览器,或者您可以定期使用对服务器的Ajax调用来更新页面内容。

答案 1 :(得分:0)

在互联网上花了一段时间后,我发现FireBase,如果你想要快速,廉价,简单和完全客户端的工作,这将有所帮助。好例子here