Verzeichnisformat für Bokeh-Apps und Templates#

Bokeh-Apps können auch mit einem Verzeichnisformat definiert werden. Dieses Format ermöglicht die Verwendung zusätzlicher Module, Daten, Templates, Themes und anderer Funktionen. Das Verzeichnis sollte eine main.py-Datei enthalten, das der Einstiegspunkt für die App ist, es können jedoch weitere Teile enthalten sein:

.
└── myapp
    ├── __init__.py
    ├── main.py
    ├── request_handler.py
    ├── static
    │   └── css
    │       └── custom.min.css
    ├── templates
    │   └── index.html
    └── theme.yaml
  • __init__.py

initiiert dieses Paket.

Dort können auch Importe relativ zum Paket vorgenommen werden, z.B. from . import mymod und from .mymod import func.

  • request_handler.py

für optionale Funktionen, z.B., um HTTP-Anfragen zu verarbeiten und ein Dict zurückzugeben, das ein Session-Token enthält, wie in Request handler hooks beschrieben.

  • app_hooks.py

für optionale Callbacks, die in verschiedenen Phasen der Ausführung ausgelöst werden können, wie in Lifecycle hooks beschrieben.

  • static

Unterverzeichnis für statische Ressourcen dieser Anwendung.

  • theme.yaml

zum Deklarieren von Standardattributen, die Bokeh auf Modelltypen anwenden soll.

  • templates

Unterverzeichnis mit einer Jinja-Vorlage index.html. Das Verzeichnis kann weitere Jinja-Vorlagen enthalten, auf die index.html verweist.

Weitere Informationen findet ihr unter Customizing the application’s Jinja template.

Ein komplettes Beispiel findet ihr unter: https://github.com/bokeh/bokeh/tree/master/examples/app/dash. Nachdem ihr den dash-Ordner heruntergeladen habt, könnt ihr den Bokeh-Server starten mit

$ pipenv run python -m bokeh serve --show dash/

$ pipenv run python -m bokeh serve --show examples/app/dash/
2019-02-08 19:02:42,829 Starting Bokeh server version 1.0.4 (running on Tornado 5.1.1)
2019-02-08 19:02:42,835 Bokeh app running at: http://localhost:5006/dash

Bokeh dashboard