Flask - wyświetlanie danych bez przeładowania strony

0

Hej,
mam pytanie dotyczące pewnej aplikacji wykorzystującej flask.
Na prostym przykładzie:
Po stronie serwera inkrementuję pewną wartość, wartość ta powinna być wyświetlana in real time na mojej stronie (bez jej przeładowywania).
Oczywiście nie chodzi o to, żeby moja inkrementowana zmienna uaktualniała się na stronie po wciśnięciu jakiegoś przycisku itp.

Jak się za coś takiego zabrać? Jakieś "eleganckie" rozwiązanie? Oczywiście nie szukam gotowca - a bardziej techniki itp.
Dzięki za wszelkie wskazówki ;)

1

Event source / server sent event powinno wystarczyć. Zamiast zwykłego żądania HTTP leci long-lived HTTP request, połączenie jest podtrzymywane i serwer dorzuca sobie kolejne dane do (w odpowiednim formacie), po stronie JS możesz to odebrać i wykorzystać np. do jakiegoś licznika, progress bara itp.

Niestety jest to jednokierunkowe, do komunikacji dwukierunkowej to już prędzej jakieś websockety.

Najprostszy przykład event source w czystym Flask znajdziesz tutaj - opakowuje generator w Response, generator musi zadbać o właściwy format danych (tu jest pokazane tylko dane, można też wysłać np. informację o błędzie czy zakończyć) resztę załatwia Flask.

Mniej dziabaniny byłoby pewnie z wykorzystaniem Flask-SSE lub innego gotowca który pozwala to zrobić ładniej i zgrabniej, ale nie znam tego modułu więc się nie wypowiem.

0

Pod Django sprawa wygląda podobnie?
Ogółem pod jakimi terminami powinienem szukać? Jakiś przykładów, prostych implementacji?
Szukałem pod kątem progress bar itp. ale niestety jak na razie nic :D

0
CzakuGim napisał(a):

Pod Django sprawa wygląda podobnie?

Nie wiem, nie znam Django. Pewnie jak wyszukasz "Django SSE" lub podobne hasła to coś znajdziesz.

Ogółem pod jakimi terminami powinienem szukać?

Przecież w poście i linkach przewinęły się ładnych parę razy

  • Event source
  • Server side events / SSE

Jakiś przykładów, prostych implementacji?
Szukałem pod kątem progress bar itp. ale niestety jak na razie nic :D

Przecież dostałeś proste przykłady w linkach

1

Alternatywnym podejściem może być też polling. Skrypt po stronie przeglądarki może w 'backgroundzie' regularnie odpytywać jakiś Twój url pod którym będzie aktualna wartość twojej zmiennej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1