Mam obecnie serwer internetowy Flask, który pobiera dane z interfejsu API JSON za pomocą wbudowanego obiektu żądań.Czy jest możliwa dynamiczna aktualizacja renderowanego szablonu w kolbie, po stronie serwera?
Na przykład:
def get_data():
response = requests.get("http://myhost/jsonapi")
...
return response
@main.route("/", methods=["GET"])
def index():
return render_template("index.html", response=response)
Kwestia jest taka, że w naturalny sposób GET jest uruchamiany tylko raz, pierwszy raz get_data nazywa. Aby odświeżyć dane, muszę zatrzymać i zrestartować serwer Flask wsgi. Próbowałem owijać różne części kodu podczas pętli True/sleep, ale to zapobiega ładowaniu strony przez werkzeug.
Jaki jest najbardziej Pythonowy sposób na dynamiczne Uzyskiwanie pożądanych danych bez konieczności ponownego ładowania strony lub restartowania serwera?
Jeśli chcesz przenieść swoją metodę 'get_data()' do adresu URL, możesz po prostu użyć [AJAX] (http://api.jquery.com/jquery.ajax/), aby ją nazwać od klienta i zaktualizować stronę z wynikami. – Celeo
@Celeo to jeden sposób. Ale powiedz, że mam 'get_data()' w osobnym pliku i nie chcę dodawać innej trasy? Moje pytanie dotyczy tego, czy można to osiągnąć za pomocą kolby lub rozszerzenia kolby. – damienstanton
Musisz mieć sposób, aby klient pobierał dane z serwera po tym, jak serwer wyrenderował już szablon. Jeśli chcesz, aby dane były aktualizowane w tle bez interakcji z klientem, możesz spróbować [Seler] (http://www.celeryproject.org/). – Celeo