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
undfrom .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 dieindex.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/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