Estoy tratando de hacer una devolución de llamada del lado del cliente en Plotly Dash donde se ejecutará un script de JavaScript. Tengo una variable de Python definida en otro lugar de la secuencia de comandos y ahora quiero pasar esa variable a la devolución de llamada del lado del cliente donde tengo mi secuencia de comandos. Aquí hay un fragmento del código:
python_variable = 'string or some variable' app.clientside_callback( """ function(n_clicks, user_input) { if (n_clicks){ alert(%{user_input} + %{python_variable}); } } """, Output('dummy_div', 'children'), [Input('btn', 'n_clicks'), Input('user_input', value)]No sé cómo poner mi python_variable en un dcc.Store mientras cargo variables durante la carga de la página (no tengo devolución de llamada para esto). ¿Es posible agregar mi variable de Python a mi función de devolución de llamada del lado del cliente?
Puede pasar directamente la variable a la propiedad de data de un componente dcc.Store en el diseño.
Luego, simplemente puede agregar la propiedad de data de los componentes de la Store a la devolución de llamada como State .
MWE:
from dash import Dash from dash.dependencies import Input, Output, State import dash_core_components as dcc import dash_html_components as html python_variable = "string or some variable" app = Dash(__name__) app.layout = html.Div( [ dcc.Input(id="input", value="", type="text"), html.Div(id="output"), dcc.Store(id="store", data=python_variable), ] ) app.clientside_callback( """ function(input, python_variable) { return `${python_variable}: ${input}` } """, Output("output", "children"), Input("input", "value"), State("store", "data"), ) if __name__ == "__main__": app.run_server()