Skip to content

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

pip install 'orama[web]'

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 Form subclasses generated from strategy variable and option definitions.
  • Color rule forms for building ColorRule instances from form data.
  • HTTP serialization and deserialization of full strategy configurations.
  • Translation support for all form labels via Babel's Translations interface (see Internationalization).