Web Layer
The web layer is available via pip install 'orama[web]'. It provides orama.web.FigureView,
which binds a WTForms form to a strategy class and supports serialization, deserialization,
and instantiation from form data.
Installation
FigureView
from orama.web.figureview import FigureView
from orama.strategies.bar import BarChartStrategy
# Create from HTTP form data (POST); pass tr to translate form labels
view = FigureView(
figure_strategy=BarChartStrategy,
fields_metadata=fields_metadata,
dataset_name="sales",
formdata=request.form,
tr=tr, # babel.support.Translations — translates variable/option labels
)
# Instantiate the strategy from the submitted form
strategy = view.instantiate_figure_strategy(theme)
# Serialize to a JSON-serializable dict (for persistence)
state = view.serialize()
# Reconstruct from a previously serialized dict
view = FigureView.deserialize(
data=state,
strategy_registry={"BarChartStrategy": BarChartStrategy},
fields_metadata_registry={"sales": fields_metadata},
)
What the web layer provides
- Dynamic WTForms
Formsubclasses generated from strategy variable and option definitions. - Color rule forms for building
ColorRuleinstances from form data. - HTTP serialization and deserialization of full strategy configurations.
- Translation support for all form labels via Babel's
Translationsinterface (see Internationalization).