2017-01-21 4 views
8

Ich möchte interaktive Handlung in Django Ansichten (oder Modell?) Machen. Nehmen wir an, ich möchte selection_histogram example. verwenden Ich denke Bokeh passen meine Bedürfnisse, weil ich Matplot/Seaborn habe, die ich wiederverwenden kann und ich bin nicht ziemlich gut bei Javascript.Embed ein interaktives Bokeh in Django Ansichten

Es gab kein Problem für mich, diesem Beispiel zu folgen: how to embed standalone bokeh graphs into django templates.

Wie ich verstehe, ich brauche einen Bokeh-Server laufen und make some proxy using nginx

Wie kann ich eine interaktive Bokeh Plot in eine django Ansicht einbinden?

Ich versuchte dies:

Starten Bokeh Server

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

aktualisieren meiner Ansicht nach in 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}) 

Jetzt ist es interaktiv ist wie erwartet.

Gibt es eine Möglichkeit, einige Argumente an Bokeh-Anwendung übergeben?

Alle Hilfen werden geschätzt. Grüße

+0

Nur um Ihre Frage zu klären, möchten Sie Widgets oder Formulareingaben in Ihrer Django-Vorlage machen und sie dann mit dem Bokeh-Server kommunizieren lassen (z. B. um die Skalierung oder Datenwerte Ihres Grundstücks zu ändern)? Wenn ja, ist das ähnlich wie bei einem Problem, und ich denke, die Lösung liegt in bokeh.js, aber ich muss noch ein gutes Muster dafür finden. –

+1

Hallo, ich habe deine Aktivität auf Gitter gesehen. Es ist mir gelungen, ein Bokeh-Widget mit Django-Dataset zu rendern. Mein Problem war, wie man beide Server miteinander reden lässt. –

+0

Können Sie erklären, was Sie unter interaktiv verstehen: 1. Die Werkzeuge sollten funktionieren (zoomen, schwenken, schweben etc), oder 2. Die Daten und die Diagramme sollten auch ohne eine neue Seite Anfrage aktualisieren – renzop

Antwort

1

Sie müssen keinen Bokeh Server verwenden, um Bokeh in DJANGO zu verwenden. Sie können Bokeh einfach in Ihre views.py importieren.

Sie müssen die Bokeh js und css in Ihrer Vorlage laden und die von Bokeh erstellten Komponenten rendern. Es ist this ein kurzes Beispiel.

+1

Danke für Ihre Antwort. Das Beispiel ist dasselbe, habe ich in meiner Frage erwähnt. Dieses einfache Beispiel ist "statisch". Ich kann Matplolib verwenden, um das zu tun. Ich werde meine Frage genauer bearbeiten. –

+0

Ah OK, dann verstehe ich nicht welche Art von Interaktivität der Bokeh Server benötigt :) –