flask

作者: scottzcw | 来源:发表于2019-02-15 18:50 被阅读4次

    # encoding:utf-8

    # !/usr/bin/env python

    import psutil

    import time

    from threadingimport Lock

    from flaskimport Flask, render_template

    from flask_socketioimport SocketIO

    import pandasas pd

    import MySQLdb

    async_mode =None

    app = Flask(__name__)

    app.config['SECRET_KEY'] ='secret!'

    socketio = SocketIO(app,async_mode=async_mode)

    thread =None

    thread_lock = Lock()

    # 后台线程 产生数据,即刻推送至前端

    def background_thread():

    count =0

        lastvalue=0

        t=0

        cpu=0

        amount=0

        while True:

    count +=1

            import numpyas np

            t=t +1

            n=np.random.randn()

    cpu= n*10 if n>0 else 2

            amount=amount + np.random.randn()*10 if np.random.randn()>0 else amount+13

            socketio.emit('server_response',

    {'data': [t,int(cpu),amount,lastvalue],'count': count},

    namespace='/test')

    socketio.emit('server_response2',

    {'data': [0,int(cpu),amount],'count': count},

    namespace='/test')

    lastvalue = amount

    socketio.sleep(2)

    # 注意:这里不需要客户端连接的上下文,默认 broadcast = True

    @app.route('/')

    def index():

    return render_template('index.html',async_mode=socketio.async_mode)

    @socketio.on('connect',namespace='/test')

    def test_connect():

    global thread

    with thread_lock:

    if threadis None:

    thread = socketio.start_background_task(target=background_thread)

    if __name__ =='__main__':

    socketio.run(app,debug=True,port=5028,host='0.0.0.0')

    相关文章

      网友评论

          本文标题:flask

          本文链接:https://www.haomeiwen.com/subject/dwbmeqtx.html