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__.pyinitiiert dieses Paket.
Dort können auch Importe relativ zum Paket vorgenommen werden, z.B.
from . import mymodundfrom .mymod import func.request_handler.pyfü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.pyfür optionale Callbacks, die in verschiedenen Phasen der Ausführung ausgelöst werden können, wie in Lifecycle hooks beschrieben.
staticUnterverzeichnis für statische Ressourcen dieser Anwendung.
theme.yamlzum Deklarieren von Standardattributen, die Bokeh auf Modelltypen anwenden soll.
templatesUnterverzeichnis mit einer Jinja-Vorlage
index.html. Das Verzeichnis kann weitere Jinja-Vorlagen enthalten, auf dieindex.htmlverweist.Weitere Informationen findet ihr unter Customizing the application’s Jinja template.
Ein komplettes Beispiel findet ihr unter: https://github.com/bokeh/bokeh/tree/branch-3.3/examples/server/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
