在过去的几天里,我一直在考虑开始将我的网站转向实时。我看了Gevent(不能使用b/c,我使用的是Python 3.3)、Tornado和Webalchemy。
网络炼金术和龙卷风都是两种选择。目前,我还没有成功地将他们的代码与我的代码进行网格化。。也就是说,我还没能得到一个实时的结果。我为自己设定了一个适度的目标:实时显示赞成票/反对票。
这是我的支持投票功能:
@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)
正如你所看到的,现在我只是"请求.推荐人"-肯定不是我想做的。
这是我的HTML页面中的代码:
{% for entry in entries %}
<li><h2>
<a href="/updebate/{{ entry.did }}" style="text-decoration:none; color:orange;">⬆</a>{{ entry.rating }}<a href="/downdebate/{{ entry.did }}" style="text-decoration:none; color:orange;">⬇</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 %}
想法?
您可以使用WebSocket等技术向浏览器推送修改,也可以使用对服务器的ajax调用定期更新页面的内容。
在互联网上呆了一段时间后,我发现FireBase,如果你想有一个快速、廉价、简单且完全客户端的工作,这会有所帮助。这里的好例子