使用flask实现大屏展示功能,每秒钟更新一次数据
时间: 2023-05-20 08:07:06 浏览: 136
可以使用 Flask-SocketIO 库来实现大屏展示功能,并使用 JavaScript 定时器每秒钟更新一次数据。以下是 Flask-SocketIO 的示例代码:
```
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
import random
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def test_connect():
print('Client connected')
@socketio.on('disconnect')
def test_disconnect():
print('Client disconnected')
@socketio.on('update_data')
def update_data():
data = random.randint(1, 100)
emit('data', {'data': data})
if __name__ == '__main__':
socketio.run(app)
```
在 HTML 模板中,可以使用 JavaScript 定时器每秒钟向服务器发送更新数据的请求,并更新页面上的数据。以下是 HTML 模板的示例代码:
```
<!DOCTYPE html>
<html>
<head>
<title>Flask-SocketIO Example</title>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
</head>
<body>
<div id="data"></div>
<script>
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function() {
console.log('Connected to server');
});
socket.on('disconnect', function() {
console.log('Disconnected from server');
});
setInterval(function() {
socket.emit('update_data');
}, 1000);
socket.on('data', function(data) {
$('#data').text(data.data);
});
</script>
</body>
</html>
```
这样就可以实现每秒钟更新一次数据的大屏展示功能了。