🛠️
dash-tools - Create and Deploy Plotly Dash Apps from Command Line
Create a templated multi-page Plotly Dash app with CLI in less than 7 seconds. Deploy your app to Heroku in under a minute!
About
dash-tools is an open-source toolchain for Plotly Dash Framework. With a user-friendly command line interface, creating Dash applications has never been quicker.
Includes user and developer-friendly app templates where generating a new app only takes seconds. In fact, it will take longer to install this tool than it will to use it!
Want to deploy your app to the web? We've got you covered. With Heroku support, deploying your project will take under a minute.
Installation
Ready to use dash-tools? Installation is easy with pip:
pip install dash-tools
Usage Examples
Below are common usage examples. For a more in-depth tutorial on writing apps for Plotly Dash, see the Plotly Dash Documentation. For information about dash-tools commands, read the Commands section.
Creating A New Project
For a more in-depth tutorial on using dash-tools, check out the Create and Upload Your App document!
Creating a new Dash project is very simple. The following command will create a new directory called "MyDashApp":
dash-tools --init MyDashApp
Optionally, templates can be used. Check out Templates for more details.
You can see what files are included with your new app:
cd MyDashApp
You can make changes to your app in the src/app.py
file! See Plotly Dash Layout Docs for more information, or check out the dash-tools docs on Configuring Your Dash App.
When you are happy with your changes, run your dash app locally with the following command. You will be able to view your app at http://127.0.0.1:8050/ in your browser:
python src/app.py
Deploying To Heroku
Deploying your project online to Heroku is simple. The CLI handles both creating and deploying a new app, as well as updating an existing app.
Creating a Heroku App
To create an app, run the following command from your project's root directory; e.g. /MyDashApp from the example above. Next, follow the simple on-screen directions and deployment will be handled for you:
dash-tools --deploy-heroku
Optionally, you can specify a heroku app name as an argument. If one is not provided, you will be prompted to enter one or generate one automatically.
Note: "some-unique-heroku-app-name" in the example below is a name that you should change!
dash-tools --deploy-heroku some-unique-heroku-app-name
And that's really it! You will be prompted to log into your heroku account, a git remote 'heroku' will be created and changes will be pushed and deployed automatically.
Pushing Changes to an Existing Heroku App
To push changes to an existing heroku app after it is deployed, you can use the same command as before. Since a 'heroku' git remote already exists, by choosing the on-screen option to "Update Existing App", all changes will be pushed and your app will be re-deployed:
dash-tools --deploy-heroku
If you would rather add specific files, make a commit and push to the 'heroku' remote manually:
git add SomeFileYouModified.txt
git commit -m "Your Commit Message"
git push heroku
Templates
Templates contain boilerplate code for Dash projects, making it much easier to start with useful baseline apps.
Using Templates
Use the optional template argument with the --init
command.
The following example will create a new app "MyWonderfulApp" (you can name your app anything) using the 'tabs' template (or any other template listed below):
dash-tools --init MyWonderfulApp tabs
To list out available templates, use the --templates
or -t
command:
dash-tools --templates
Available Templates
Click the dropdowns below to see screenshots!
Template: 'advanced'
To use this template, type: dash-tools --init MyFuturisticApp advanced
Advanced multi-page template. Includes examples of ClientsideCallbacks, multi-page routing, external stylesheets, header, footer, and 404 page.
Template: 'default'
To use this template, type: dash-tools --init MyAmazingApp default
Basic Dash template. See Dash Docs
Template: 'iris'
To use this template, type: dash-tools --init MyFantasticApp iris
Iris theme. See Faculty.ai Example
Template: 'mantine'
To use this template, type: dash-tools --init MyGreatApp mantine
Basic mantine template. See Dash Mantine
Template: 'multipage'
To use this template, type: dash-tools --init MyPristineApp multipage
New multipage theme. See Multipage Plugin
Template: 'sidebar'
To use this template, type: dash-tools --init MySnazzyApp sidebar
Sidebar theme. See Faculty.ai Example
Template: 'tabs'
To use this template, type: dash-tools --init MyBeautifulApp tabs
Tabs theme with dynamically generated content. See Faculty.ai Example
Commands
Project Commands
--deploy-heroku
Args: OPTIONAL (unique heroku project name
) : Deploys the project to Heroku using the Heroku CLI (Must Install Seperately) and Git. Invoke from the project root directory.--init, -i
Args: REQUIRED (project name
) OPTIONAL (template
) : Creates a Plotly Dash app with the given name in the current working directory. Optional args specified can be used for templates.--templates, -t
: List available templates.
Other
--help, -h
: Display CLI helpful hints--version
: Display current version.
Development
See the Developer Guide for more details.
License
MIT License. See LICENSE.txt file.