📣 Dash 0.39.0 released


dash v0.39.0
dash-renderer v0.20.0
dash-core-components v0.44.0
dash-html-components v0.14.0
dash-table v3.6.0


Lots of new features in this new release!

  • Allow multiple outputs from a single callback. #436
  • Support for custom javascript hooks to modify callback payloads and responses. #367
  • Modify the flask response with custom cookies or headers, using dash.callback_context.response . #623
  • Loading states API #267
  • Upgraded plotly.js to 1.45.0 #470
  • Formatting for numbers in dash-table #189

In Depth

Loading States
Multiple Outputs
DataTable Number Formatting

More updates in Dash Club - Dispatch #4: 📣 Dash Club - Dispatch #4 - Latest Dash Developments


Multiple Output !!!


I just upgraded to 0.39 (from 0.38rc1) and I’m getting an exception when the site tries to load:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.7/site-packages/dash/dash.py", line 570, in index
dash.exceptions.InvalidIndexException: Missing element new DashRenderer in index.

These are the package versions:

1 Like

Figured out the issue, in case others run into it as well:
Looks like the default app_index string was modified to now include {%renderer%} in the section. Since I was manually setting the index string in my application, the change in the default string was not reflected in my overridden index string therefore causing the exception of “Missing element”.


3 posts were split to a new topic: Issues with table in Dash 0.39.0

Awesome ! Thanks for the multiple outputs and the loading component!! It will be very hepful !! Very Good, great work ! :grinning:

Thanks zoohair - just hit the same issue. To make things a bit more explicit, the default app.index_string is now:

<!DOCTYPE html>

These are great new features (multi output, loading component)! Dash is awesome!

1 Like

is there a fixed schedule to update the conda-forge ?

thanks @zoohair . You solve my problem.
In my case. I have customed Dash class and override interpolate_index

I should lock the version of Dash now. Thanks again.

Hi Rob,

Is app.index_string necessary to add a favicon? I’m including a favicon.ico in my assets folder at root, but nothing is showing up in my web browser tab, although the default plotly icon is removed.


Hi @alexrjohnson,

No doubt you’ve already figured it out by now - sorry for taking so long to see this. But for me, our favicons disappeared at some point when we moved to a new version of Dash. To fix it, we ended up with what’s shown below. I’m afraid I can’t remember many more details about it anymore. The below works with dash v39 (excuse some of my application specific code included in the snippet below):

app = dash.Dash(__name__, static_folder='static')
app.config.suppress_callback_exceptions = True

html_head_title = get_config().get('frontend', 'html_head_title', fallback='TRM Dashboard')
stylesheet_href = get_config().get('frontend', 'stylesheet_href', fallback='/assets/dashboard_prod.css')

app.index_string = f'''
<!DOCTYPE html>
        <link rel="icon" type="image/png" href="/static/favicon.png">
        <link rel="stylesheet" href="{stylesheet_href}">