Flask框架可以将实时数据从服务器发送到客户端浏览器吗?

2024-01-02

我想知道 Flask 如何(如果有的话)执行长轮询,以便服务器可以通过连接向客户端发送数据。例如,如果服务器通过流 api 接收到 twitter feed,它将如何传递到客户端浏览器?

我认为在这种情况下你不能使用flask.flash。

Thanks

感谢您提供的示例。我查看了示例,当我尝试为我的代码实现它时,它仍然无法在客户端浏览器中提供实时输出。

我使用 juggernaut 和 redis 围绕 Flask snippet() 构建了它。这是我的Python代码:

import flask
from flask.views import MethodView
from tweetStreamsRT import StreamerRt 
from juggernaut import Juggernaut


app = flask.Flask(__name__)
app.secret_key = "xxxxx"
PORT = 8080

class View(MethodView):

    def get(self):
        return flask.render_template('index.html')

    def post(self):
        results = StreamerRt().filter(track=[flask.request.form['event']])            
        jug = Juggernaut()
        jug.publish('channel', results)
        return self.get()


app.add_url_rule('/', view_func = View.as_view('index'), methods=['GET', 'POST'])
app.debug = True

if __name__ == "__main__":
    print 'Listening on http://localhost:%s' % PORT
    app.run()

我的 html 页面是,它继承自基本 html 页面:

{% extends "base.html" %}
{% import "forms.html" as forms %}


{% block page_header %}
  <div class="page-header">
    <h1>Welcome</h1>
  </div>
{% endblock %}
{% block content %}
  <h2>Enter the Event you would like to follow</h2>
      <form action="/" method="post">
            <input type="text" name="event" />
            <input type="submit" value="Submit Query" />
          </form>
            Results:
            <pre>
                <script type="text/javascript" charset="utf-8">
                    var jug = new Juggernaut;
                    jug.subscribe("channel", function(data){
                    alert("Got data: " + data);});
                </script>

            </pre> 
{% endblock %}

我仍然很困惑为什么没有任何内容发送到客户端浏览器。

Thanks


您可以在以下人员的帮助下完成此操作gevent http://www.gevent.org+socketio http://socket.io.

  • 使用 Flask 的示例应用程序gevent+socketio https://github.com/kcarnold/flask-gevent-socketio-chat.
  • Flask 中的 socket.io 路由 https://gist.github.com/858806
  • gevent-socketio https://github.com/abourget/gevent-socketio
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask框架可以将实时数据从服务器发送到客户端浏览器吗? 的相关文章

随机推荐