JQuery / Flask - 将数据从服务器发送到浏览器作为JSON

时间:2012-11-06 17:35:13

标签: javascript python jquery flask

首先原谅我的无知,我对这一切都很陌生。

我的问题是我正在尝试将存储在mongodb坐标中的json数据发送到客户端浏览器。我有一个python模块,它使用Twitter的Streaming API存储到数据库中。这工作正常,但是当我尝试将其发送到客户端时,它什么也没显示,尽管我可以看到服务器终端获取更多数据。我之前没有使用过Flask或JQuery,所以基于http://flask.pocoo.org/docs/patterns/jquery/的示例。

这是我的代码:

from flask import Flask, jsonify, render_template, request
from pymongo import Connection 

app = Flask(__name__)

@app.route('/_reader')
def reader():
    db = Connection().tstream
    coll = db.tweets_tail
    cursor = coll.find({"coordinates.type" : "Point" }, {"coordinates" :1},tailable=True,timeout=False)
    ci=0
    while cursor.alive:
        try:
            doc = cursor.next()
            ci += 1
            print doc
            print ci
        except StopIteration:
            pass
    return jsonify(ci, doc)


@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True, port= 8888)

这是我的html客户端:

{% extends "layout.html" %}
{% block body %}
<script type=text/javascript>
  $(function() {
       $.getJSON($SCRIPT_ROOT + '/_reader', 
       function(data) {
        $("#result").text(data.result);
      });
      return false;
    });

</script>
<h1>Coordinates</h1>
<p>
   <span id=result>?</span>
{% endblock %}

我希望收到新的坐标数据,然后将其推送到客户端。

我希望有人可以提供帮助。

由于

1 个答案:

答案 0 :(得分:2)

不确定你的线路     return jsonify(ci,doc)

你确定这回复正确吗?参数应该是字典格式。你可以尝试这个吗

return jsonify(dict(ci=ci, doc=doc))
相关问题