Chalice as an alternative to Flask for Plotly Dash
Project description
dash-chalice
This package integrates Plotly Dash with AWS Chalice. It provides a DashChalice
object which is largely a slot-in replacement for dash.Dash
, but with the underlying Flask server object replaced with a Chalice one. It aims to provide a more natural path for deployment using AWS Lambda than Zappa.
A simple example is given below. Note that Chalice expects projects to have a particular structure. To run this example, save the code below as app.py
and include an empty JSON object {}
within .chalice/config.json
in the same directory. The example can then be run locally with chalice local
.
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
from dash_chalice import DashChalice
dash_app = DashChalice(__name__, title="Example")
dash_app.layout = html.Div(
[
dcc.Input(id="input", placeholder="Please type a name"),
html.Div(id="output"),
]
)
@dash_app.callback(
Output("output", "children"),
Input("input", "value"),
)
def set_output(input):
return "Hello!" if input in (None, "") else f"Hello {input}!"
# this needs to be called after the dash app has been set up
dash_app.finalise()
# nb: chalice expects an app variable to be exposed for running/deployment
app = dash_app.server
For more information on structuring and deploying apps with Chalice, see the documentation. In addition, you may find these workshop notes useful, as I have.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dash_chalice-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 169280e1e9df4f3c06f4791f62b48f99b17d9d5b639acbc28ab5d1ea0f4057f1 |
|
MD5 | 2db0ffe566b0e4a9a330c82fcc9c5c58 |
|
BLAKE2b-256 | fd6ee673516e05415ad8651adf6a6c9f8b078070b31b3d8c3ddb2c7965494152 |