Action Buttons in Dataframes with Record-Level Routing in Shiny for Python

📰 Dev.to · India Owens

Learn to add action buttons in dataframes with record-level routing in Shiny for Python, enabling interactive web applications

intermediate Published 16 Mar 2026
Action Steps
  1. Install Shiny for Python using pip
  2. Create a dataframe with action buttons using Shiny's dataframe functionality
  3. Configure record-level routing using Starlette
  4. Build a Shiny app with the configured routing and dataframe
  5. Test the app to ensure action buttons are working as expected
Who Needs to Know This

Data scientists and web developers can benefit from this tutorial to create interactive dashboards with Shiny for Python

Key Insight

💡 Shiny for Python allows you to create interactive web applications with action buttons in dataframes, enhancing user experience

Share This
🚀 Add action buttons to your dataframes with record-level routing in Shiny for Python! #ShinyForPython #DataScience #WebDev

Key Takeaways

Learn to add action buttons in dataframes with record-level routing in Shiny for Python, enabling interactive web applications

Full Article

Title: Action Buttons in Dataframes with Record-Level Routing in Shiny for Python

URL Source: https://dev.to/india_owens/action-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o

Published Time: 2026-03-16T01:35:45Z

Markdown Content:
[Skip to content](https://dev.to/india_owens/action-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o#main-content)

[![Image 1: DEV Community](https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png)](https://dev.to/)

[Powered by Algolia](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)

[Log in](https://dev.to/enter?signup_subforem=1)[Create account](https://dev.to/enter?signup_subforem=1&state=new-user)

## DEV Community

![Image 2](https://assets.dev.to/assets/heart-plus-active-9ea3b22f2bc311281db911d416166c5f430636e76b15cd5df6b3b841d830eefa.svg)0 Add reaction

![Image 3](https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg)0 Like ![Image 4](https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg)0 Unicorn ![Image 5](https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg)0 Exploding Head ![Image 6](https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg)0 Raised Hands ![Image 7](https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg)0 Fire

0 Jump to Comments 0 Save Boost

Copy link

Copied to Clipboard

[Share to X](https://twitter.com/intent/tweet?text=%22Action%20Buttons%20in%20Dataframes%20with%20Record-Level%20Routing%20in%20Shiny%20for%20Python%22%20by%20India%20Owens%20%23DEVCommunity%20https%3A%2F%2Fdev.to%2Findia_owens%2Faction-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o)[Share to LinkedIn](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fdev.to%2Findia_owens%2Faction-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o&title=Action%20Buttons%20in%20Dataframes%20with%20Record-Level%20Routing%20in%20Shiny%20for%20Python&summary=Why%20this%20is%20more%20useful%20than%20a%20modal%20%20%20This%20is%20Part%203%20of%20the%20Shiny%20for%20Python%3A%20The%20Missing...&source=DEV%20Community)[Share to Facebook](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fdev.to%2Findia_owens%2Faction-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o)[Share to Mastodon](https://s2f.kytta.dev/?text=https%3A%2F%2Fdev.to%2Findia_owens%2Faction-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o)

[Share Post via...](https://dev.to/india_owens/action-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o#)[Report Abuse](https://dev.to/report-abuse)

[![Image 8: India Owens](https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3826106%2F1e0e458e-bb0f-4f2c-a211-1890a881dcb1.png)](https://dev.to/india_owens)

[India Owens](https://dev.to/india_owens)
Posted on Mar 16

# Action Buttons in Dataframes with Record-Level Routing in Shiny for Python

[#python](https://dev.to/t/python)[#shiny](https://dev.to/t/shiny)[#webdev](https://dev.to/t/webdev)[#tutorial](https://dev.to/t/tutorial)

## [](https://dev.to/india_owens/action-buttons-in-dataframes-with-record-level-routing-in-shiny-for-python-1k7o#why-this-is-more-useful-than-a-modal) Why this is more useful than a modal

This is Part 3 of the _Shiny for Python: The Missing Manual_ series. **Part 1** covered Quill.js rich text input, **Part 2** covered multi-page routing with Starlette. This article builds directly on Part 2's routing setup — read that first if you haven't.

Adding ac
Read full article → ← Back to Reads