-
Notifications
You must be signed in to change notification settings - Fork 11
/
usage.py
48 lines (36 loc) · 1.38 KB
/
usage.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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()