Skip to main content

An experimental version of Streamlit Multi-Page Apps

Project description

Streamlit-Pages

Releases Build Status Python Versions Streamlit versions License Ruff

Streamlit App

Author: @blackary

Code: https://github.com/blackary/st_pages

Installation

pip install st-pages

See it in action

Basic example: https://st-pages.streamlit.app/

Example with sections: https://st-pages-sections.streamlit.app/

Why st-pages?

Previously, st-pages allowed for a much more customizable and flexible declaration of pages in a Streamlit app, and was independent of the actual filenames of the python files in your project.

As of 1.0.0, st-pages is now a tiny wrapper that provides an easy method for defining the pages in your app in a toml file, as well as a few utility methods to let you add the current page's title to all pages, etc.

You are welcome to continue to use older versions of this package, but most of the old use-cases are now easy to do with native streamlit, so I would recommend checking out the documentation for more information.

How to use

Declare pages inside of a toml file

Contents of .streamlit/pages.toml

[[pages]]
path = "page1.py"
name = "Home"
icon = "🏠"

[[pages]]
path = "other_pages/page2.py"
name = "Page 2"
icon = ":books:"
url_path = "my_books" # You can override the default url path for a page

Example with sections, .stremalit/pages_sections.toml:

[[pages]]
path = "page1.py"
name = "Home"
icon = "🏠"

[[pages]]
path = "other_pages/page2.py"
name = "Page 2"
icon = ":books:"

[[pages]]
name = "My section"
icon = "🎈️"
is_section = true

# Pages after an `is_section = true` will be indented
[[pages]]
name = "Another page"
icon = "💪"

Streamlit code:

import streamlit as st
from st_pages import add_page_title, get_nav_from_toml

st.set_page_config(layout="wide")

# If you want to use the no-sections version, this
# defaults to looking in .streamlit/pages.toml, so you can
# just call `get_nav_from_toml()`
nav = get_nav_from_toml(".streamlit/pages_sections.toml")

st.logo("logo.png")

pg = st.navigation(nav)

add_page_title(pg)

pg.run()

Hiding pages

You can now pass a list of page names to hide_pages to hide pages from now on.

This list of pages is custom to each viewer of the app, so you can hide pages from one viewer but not from another using this method. You can see another example of hiding pages in the docs here

from st_pages import hide_pages

hide_pages(["Another page"])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

st_pages-1.0.1.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

st_pages-1.0.1-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file st_pages-1.0.1.tar.gz.

File metadata

  • Download URL: st_pages-1.0.1.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for st_pages-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2641cfbff1c768ff146858ed742d282b30a3a4c3e4f7717898705bbaee717736
MD5 ff0bfb50d39c60da846907d3d7a6fe0d
BLAKE2b-256 8360f9516698fc3952bba1d1b6c1cb0795aa82dac12473f5fb678066532268e0

See more details on using hashes here.

File details

Details for the file st_pages-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: st_pages-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for st_pages-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9098fb4d96bc1dfa56cc2c56ef6fe44e607c69261ff4bceee1f6e9c1e0c2acb4
MD5 8c04252a1808fa355e440bff8b30393d
BLAKE2b-256 a70477c5f0cdc21deb6eadd77bdbf88157632178865e71adffed728fa9e5b48b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page