2017-03-23 11 views
-1

Wie kann ich eine HTML-Seite senden eine get() Anfrage an einen Server jede Sekunde, so dass die Daten aktualisiert werden. Ich habe versucht, angular js für die Uhr/Timer-Teil, ist aber nicht gelungen. Wenn eine "GET" -Anforderung empfangen wird, gibt der Server eine zufällige Ganzzahl an die Seite index.html zurück. Der Javascript-Teil sendet jede Sekunde eine GET-Anfrage an den Server. Allerdings konnte ich die Anzahl nicht pro Sekunde aktualisiert sehen.html senden get() Anfrage zu Flask-Server jede Sekunde

from flask import Flask, render_template, request 
import numpy as np 
app = Flask(__name__) 

@app.route('/db', methods = ['Get']) 
def hello(): 
    return render_template('index.html', data = np.random.randint(1,10)) 

if __name__ == '__main__': 
    app.run() 

index.html

<html np-app='myApp'> 
    <head> 
     <script src="/Scripts/angular.min.js"></script> 
     <script src="/Scripts/myController.js"></script> 
    </head> 

    <body np-controller='myController'> 
     {{ data }} 
    </body> 

</html> 

myController.js

myApp = angular.module('myApp', []); 

myApp.controller('myController', function getStuff($http, $timeout) { 
     $http.get().success(function() { 
     $timeout(getStuff, 1000); 
     }); 
}); 

Update: schrieb ich die myController.js Datei, basierend auf Informationen des inf1n1te. Aber ich muß etwas falsch gemacht und so hat es nicht funktioniert:

myApp = angular.module('myApp', []); 

myApp.controller('myController', ['$interval', '$http', function getStuff($http, $interval) { 
     $interval($http.get().success(), 1000);  
     }]); 
+0

Ich habe meinen Beitrag aktualisiert, um das Problem zu beschreiben. – daydayup

+0

Ich bin mir nicht sicher, warum Sie überrascht sind, nichts Updates: Sie tun nichts mit den Daten, die Sie bekommen. Wie auch immer, dies ist nicht im Zusammenhang mit Flask, obwohl Sie möglicherweise JSON stattdessen zurückgeben möchten: http://stackoverflow.com/questions/13081532/return-json-response-from-flask-view – davidism

+0

die Daten werden an HTML-Seite gesendet direkt, wird es nicht automatisch aktualisiert? – daydayup

Antwort

0

Verwendung $ Intervall (getStuff, 1000) statt. angular doc

besten Weg, dies zu tun, ist hier ein Websocket zu verwenden.

+0

Hey danke, ich habe gerade meinen Post aktualisiert und ich habe deine Methode ausprobiert, aber ich schätze, ich habe es immer noch nicht richtig verstanden. Kannst du es dir anschauen? – daydayup