Templates#
Wenn ihr eine Panel-App oder ein Dashboard als Bokeh-Anwendung bereitstellen wollt, wird diese in einem Standard-Template gerendert, das auf die JS- und CSS-Ressourcen sowie das eigentliche Panel-Objekt verweist. Wenn ihr das Layout der bereitgestellten App anpassen wollt oder mehrere separate Panels in eine App bereitstellen wollt, ermöglicht euch die Template
-Komponente von Panel das Anpassen dieses Standard-Templates.
Ein solches Template wird mithilfe von Jinja definiert, wobei ihr das Standard-Template erweitert oder sogar vollständig ersetzen könnt. Im Folgenden seht ihr ein Beispiel:
<!DOCTYPE html>
<html lang="en">
{% block head %}
<head>
{% block inner_head %}
<meta charset="utf-8">
<title>{% block title %}{{ title | e if title else "Panel App" }}{% endblock %}</title>
{% block preamble %}{% endblock %}
{% block resources %}
{% block css_resources %}
{{ bokeh_css | indent(8) if bokeh_css }}
{% endblock %}
{% block js_resources %}
{{ bokeh_js | indent(8) if bokeh_js }}
{% endblock %}
{% endblock %}
{% block postamble %}{% endblock %}
{% endblock %}
</head>
{% endblock %}
{% block body %}
<body>
{% block inner_body %}
{% block contents %}
{% for doc in docs %}
{{ embed(doc) if doc.elementid }}
{% for root in doc.roots %}
{{ embed(root) | indent(10) }}
{% endfor %}
{% endfor %}
{% endblock %}
{{ plot_script | indent(8) }}
{% endblock %}
</body>
{% endblock %}
</html>
Das Template definiert eine Reihe von benutzerdefinierten Blöcken, die durch extends
ergänzt oder überschrieben werden können:
Benutzerdefinierte Templates verwenden#
[1]:
import panel as pn
import holoviews as hv
pn.extension()