2017-01-21 31 views
8

Chcę zrobić interaktywny wykres w widokach django (lub modelu?). Powiedzmy, że chcę użyć selection_histogram example. Myślę, że Bokeh pasuje do moich potrzeb, ponieważ mam Matplot/Seaborn, który mogę ponownie wykorzystać i nie jestem całkiem dobry w javascript.Osadzanie interaktywnego Bokeh w widokach django

Nie było problemu dla mnie, aby wykonać następujący przykład: how to embed standalone bokeh graphs into django templates.

Jak rozumiem, muszę uruchomić serwer bokeh i make some proxy using nginx

Jak mogę osadzić fabułę interaktywną bokeh do widoku Django?

Próbowałem to:

serwer Wprowadzenie bokeh

bokeh serve --allow-websocket-origin=127.0.0.1:8001 selection_histogram.py 

Aktualizacja mój widok w views.py

def simple_chart(request): 

    script = autoload_server(model=None, 
          app_path="/selection_histogram", 
          url="http://localhost:5006/") 


    return render(request, "simple_chart.html", {"the_script": script}) 

Teraz jest interaktywne, jak oczekiwano.

Czy istnieje sposób przekazania argumentów do aplikacji bokeh?

Każda pomoc zostanie doceniona. Pozdrowienia

+0

Aby wyjaśnić pytanie, czy chcesz renderować widżety lub tworzyć dane wejściowe w szablonie django, czy chcesz komunikować się z serwerem bokeh (np. Aby zmienić skalę lub wartości danych wykresu)? Jeśli tak, to jest podobny do problemu, który mam, i myślę, że rozwiązanie leży w bokeh.js, ale muszę jeszcze znaleźć dobry wzór. –

+1

Witam, widziałem twoją aktywność na Gitter. Udaje mi się renderować widżet bokeh z zestawem danych django. Mój problem polegał na tym, jak sprawić, by oba serwery komunikowały się ze sobą. –

+0

Czy możesz wyjaśnić, co masz na myśli przez interaktywne: 1. Narzędzia powinny działać (powiększanie, przesuwanie, najeżdżanie itp.) Lub 2. Dane i wykresy powinny być aktualizowane nawet bez nowego żądania strony – renzop

Odpowiedz

1

Nie trzeba uruchamiać serwera Bokeh, aby używać Bokeh w DJANGO. Możesz po prostu zaimportować Bokeh do ciebie views.py.

Musisz załadować Bokeh js i css w swoim szablonie i renderować komponenty utworzone przez Bokeh. Uważa się, że this jest zwięzłym przykładem.

+1

Dzięki za odpowiedź. Przykład jest taki sam jak wspomniałem w moim pytaniu. Ten prosty przykład to "statyczny". Potrafię użyć macplolib, który prawdopodobnie to zrobi. Zmienię moje pytanie na bardziej szczegółowe. –

+0

Ah OK, to nie rozumiem, jaki rodzaj interaktywności wymaga serwera bokeh :) –