streamlit-test / multipage.py
IsaacKerson
connect quiz_maker.db to view page
9311bf4 unverified
raw history blame
No virus
1.22 kB
"""
This file is the framework for generating multiple Streamlit applications
through an object oriented framework.
"""
import streamlit as st
# Define the multipage class to manage the multiple apps in our program
class MultiPage:
"""Framework for combining multiple streamlit applications."""
def __init__(self) -> None:
"""Constructor class to generate a list which will store all our applications as an instance variable."""
self.pages = []
def add_page(self, title, func) -> None:
"""Class Method to Add pages to the project
Args:
title ([str]): The title of page which we are adding to the list of apps
func: Python function to render this page in Streamlit
"""
self.pages.append(
{
"title": title,
"function": func
}
)
def run(self):
# Drodown to select the page to run
page = st.sidebar.selectbox(
'App Navigation',
self.pages,
format_func=lambda page: page['title']
)
# run the app function
page['function']()