Skip to content

pragmatic-streamlit/streamlit-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

streamlit-router

Install

pip install streamlit-router

20240423141943

Example

import streamlit as st
from streamlit_router import StreamlitRouter


def index(router):
    st.text("fron page index")
    x = st.number_input("task id")
    if st.button("create task"):
        router.redirect(*router.build("create_task", {"x": x}))
    if st.button("cancel task"):
        router.redirect(*router.build("cancel_task", {"x": x}))
    if st.button("view task"):
        router.redirect(*router.build("view_task", {"x": x}))
    st.text("others on page index")


# variable router auto inject if as first params
def cancel_task(router, x):
    st.text(f"fron page cancel task x={x}")
    if st.button("back to index"):
        router.redirect(*router.build("index"))
    st.text("others on page cancel task")


# variable router auto inject if as first params
def create_task(x, router):
    st.text(f"fron page create task x={x}")
    if st.button("back to index"):
        router.redirect(*router.build("index"))
    st.text("others on page create task")


router = StreamlitRouter()
router.register(index, "/")
router.register(cancel_task, "/tasks/<int:x>", methods=["DELETE"])
router.register(create_task, "/tasks/<int:x>", methods=["POST"])


# deco also works
@router.map("/tasks/<int:x>")
def view_task(x):
    st.text(f"fron page view task x={x}")
    if st.button("back to index 2"):
        router.redirect(*router.build("index"))
    st.text("others on page view task")


router.serve()

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages