render.express
render.express(self, _fn=None, *, inline=False, container=None, fill=False, fillable=False, **kwargs)
Reactively render HTML content with output captured as in Shiny Express
This is similar to ui, except that ui uses the return value from the the decorated function, whereas this function works like Shiny Express: as it executes each line of the decorated function, it calls :func:~sys.displayhook()
on the result. This has the effect of "capturing" the output of each line.
This decorator can be thought of as a combination of ui (for rendering and sending the dynamic UI to the client), and ~shiny.express.expressify
(for capturing the output of each line).
Returns
Type | Description |
---|---|
A decorator for a function that returns None . |
See Also
Examples
#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400
## file: app.py
from shiny import App, render, ui
app_ui = ui.page_fluid(
ui.input_text("name", "Name", "Socrates"),
ui.input_text("years", "Years", "470-399 BC"),
ui.output_ui("person"),
)
def server(input, output, session):
@render.express
def person():
from shiny.express import ui
with ui.card(class_="mt-3"):
ui.h3(input.name())
input.years()
app = App(app_ui, server)