2
Ich visualisieren Live-Charts wie das Beispiel hier: Highcharts. Grundsätzlich ist es eine Ajax-Anforderung von Daten aus einem PHP-Skript live-server-data.php
, die Zufallsdaten erzeugt:Wie verwende ich Ajax mit Flask
/**
* Request data from the server, add it to the graph and set a timeout
* to request again
*/
function requestData() {
$.ajax({
url: '/',
success: function(point) {
var series = chart.series[0],
shift = series.data.length > 20; // shift if the series is
// longer than 20
// add the point
chart.series[0].addPoint(point, true, shift);
// call it again after one second
setTimeout(requestData, 1000);
},
cache: false
});
}
//---live-server-data.php
<?php
$x = time() * 1000;
$y = rand(0, 100);
$ret = array($x, $y);
echo json_encode($ret);
?>
Wie eine ähnliche Sache in Fläschchen zu tun, das heißt Anfrage zufällig Zahlen von Flask erzeugt?
from flask import Flask, render_template, request, jsonify
import random, datetime, json
import time
app = Flask(__name__)
@app.route('/')
def index():
x = int(round(time.time() * 1000))
y = random.randint(0, 100)
return json.dumps([x, y])
if __name__ == '__main__':
app.run(debug=True)
Dank. Wie ruft man die Daten von Ajax Anfrage? Ich habe den Code in Flask eingegeben, bekomme aber die Rohwerte auf index.html. Wie übergebe ich die Daten wie im Beispiel an Highcharts? – DougKruger
Verwenden Sie 'app.py' nicht, ersetzen Sie es durch Ihren tatsächlichen URL-Endpunkt. Zum Beispiel wird es die "http: // localhost /" oder nur "/", wenn es die gleiche Indexseite ist. –
Und versuchen Sie diesen Endpunkt ohne Ajax, indem Sie diese URL zuerst im normalen Browser öffnen. –