dash
A Python framework for building reactive web-apps. Developed by Plotly.
What it is and what it does
Dash is a Python web framework built on Flask, Plotly.js, and React that lets you build interactive data applications by declaring UI components and connecting them to Python callbacks. You write pure Python—no JavaScript required—to tie dropdowns, sliders, graphs, and other elements to your analytical logic, and Dash handles the reactive updates when users interact with the app.
The framework is designed for data science and ML workflows and runs on your local machine or can be deployed to a server. It handles both simple single-page dashboards and complex multi-input applications with cross-filtering. The package depends on Flask for the web server, Plotly for charting, Pydantic for validation, and several async utilities; it requires Python 3.9 or later.
Use it for:
- Build interactive financial dashboards that update graphs when users select date ranges or filter criteria from dropdowns.
- Create ML model exploration interfaces where users adjust parameters and see real-time predictions or classification results.
- Develop data exploration tools that let analysts cross-filter multiple visualizations from a single dataset.
- Deploy internal business intelligence reports with styled layouts that look like PDF reports but are fully interactive.
- Build scientific research dashboards that visualize experimental data with interactive controls for parameter tuning.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Dash is a Python framework for building interactive web applications with reactive UI elements like dropdowns and graphs tied directly to analytical code, using Flask and Plotly for rendering.
Yes. Dash is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively under MIT. It is well-suited for building interactive web applications in Python without requiring JavaScript expertise. Install it if you need to turn analytical Python code into interactive dashboards or data apps.
Install
dash on PyPI
pip
pip install dashuv
uv add dashpoetry
poetry add dashInstalling dash
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a recent release and repository activity; last commit on 2026-08-13 signals ongoing development.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute Dash-based applications freely provided you include the license notice.
Quickstart
pip install dash
import dash
from dash import dcc, html, callback
import plotly.express as px
app = dash.Dash(__name__)
app.layout = html.Div([
dcc.Dropdown(id='dropdown', options=[{'label': 'A', 'value': 'a'}]),
dcc.Graph(id='graph')
])
@callback(dash.Output('graph', 'figure'), dash.Input('dropdown', 'value'))
def update_graph(value):
return px.bar(x=[1, 2, 3], y=[4, 5, 6])
if __name__ == '__main__':
app.run_server(debug=True)
Verify before relying
- Whether all 12 runtime dependencies are required for basic use or if some are optional.
- Performance characteristics and scalability limits for production deployments without Dash Enterprise.
- Exact number of supported chart types beyond the description's mention of map support.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 12 — Flask, Werkzeug, plotly, importlib-metadata, typing_extensions, requests, retrying, nest-asyncio, setuptools, janus, pydantic, comm |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 11,414,321/month — #1,396 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: dash-4.4.1-py3-none-any.whl
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
dash-tableProvides an interactive DataTable component for…
permissive · top 5,000 on PyPI
h2o-waveH2O Wave is a Python framework for building…
permissive · top 15,000 on PyPI
dash-cytoscapeDash Cytoscape wraps Cytoscape.js to let you…
permissive · top 15,000 on PyPI
dash-svgProvides SVG component primitives (Svg, G,…
permissive · top 15,000 on PyPI
jupyter-dashJupyter Dash lets you develop and run Plotly…
permissive · top 15,000 on PyPI
dash-daqProvides interactive data acquisition and…
permissive · top 15,000 on PyPI
dash-extensionsDash-extensions adds utility functions, custom…
permissive · top 5,000 on PyPI
dash-authAdds HTTP Basic Authentication and OpenID…
permissive · top 15,000 on PyPI
dash-mantine-componentsDash Mantine Components provides a library of…
permissive · top 15,000 on PyPI
dash-ag-gridDash AG Grid wraps the AG Grid JavaScript…
permissive · top 5,000 on PyPI