Introducing multipage apps! 📄

Hi @Mohammad_Nour,

This seems to be a bug in Python itself (see Issue 34921: NoReturn not allowed by get_type_hints when future import annotations is used - Python tracker) that didn’t appear previously because we weren’t typing.NoReturn. We recently improved our type annotations, so that’s why this is appearing now. I would recommend upgrading your Python version to >=3.7.2 to fix this.

Hi @akan72, this currently isn’t possible, but it’s not off the table that we decide to build this in the future!

1 Like

Hi @rcsmit, if by deep link you mean link into a non-main page of a multipage app (I’m guessing that’s what you mean by the link you posted), this should work! You should see the URL bar update when navigating between pages, and those links will navigate to the corresponding pages of the app.

1 Like

Hey @Clem,

Good to hear you solved your problem! Not sure if this is the way you ended up resolving things, but st.session_state persists across an app’s pages, so you can use that to carry state across runs of different pages.

Hey @baggiponte - @vdonato will correct me if I’m wrong, but I think this is unsupported right now. (That is, your subpages can’t refer to modules in parent directories.)

This is a first release, and we’re listening to user feedback, so this will not necessarily be a limitation forever!

How to make this dataframe to be shown in streamlit page?

Thank you.


I don’t know how your authentication works, but my multi-page app is based on the authentication on the first page. When the authentication is passed, the multi-pages will show up. But it seems the new native multipage feature doesn’t allow the control on the main app, and the multi-pages will show on the sidebar anyway, and you can access any page any time.

I would like to see some basic controls over the sub-pages/navigation like enable/disable the visibility.



Dataframe is not editable at all. You can select cell values and can copy only. Is there a way to make it editable?

Here’s a same feature request with @mirfan899 's reply. Is there any plan that Streamlit team can make an editable dataframe component based on the Grid Data component? Or some other features shown in the Data Grid story page?

Awesome job with the streamlit dataframe. Let me know if there is anything I can do to help you get the best out of glide data grid.


Hi @vdonato

I’d also like to hide my app’s pages from the sidebar. Just to make sure, this has to be set in config.toml file, right?


Come on ! I got to know Stremlit a few days ago and I’ve been making some posts with suggestions or criticisms because I see potential in it.

But I’m sorry for the sincerity and without wanting to throw cold water on the “Mult Pages” feature, but this feature is not so useful, as this was already possible to be done in some ways and with greater control on the part of the developer.

And besides imposing how the developer should define their file structure is not cool.

I think Streamlit can go beyond Data Science screens.
Streamlit needs to turn its eyes to larger applications where it will require greater control of screen elements/objects.

Think of a commercial application with access to a database with several screens, different types of queries with custom filters, screen switching, screen overlays, etc…

Again, I apologize, but this is a criticism from a user who wants to see this grow a lot!


can we make this multipage app without using sidebars?

1 Like

Is there any way to get which page is selected?


hello! Further to the question above, is there a way to create a streamlit button which switches between pages? Thank you

1 Like

“Multipage” update is a good try!
I found there is a paragraph, which is auto generated by streamlit, on the sidebar to show modules in ‘pages’ directory. (Not only I explicit import in my code: “from pages import a,b,c,…” ).
And it’s weird that I found this paragraph is not appeared at another machine, which is setup with same streamlit version. (I really don’t know why)
This paragraph conflict with my original design. I really don’t want it to be shown. How can I disable it?

1 Like

Hi guys !
Take a look at:

1 Like
  1. Any way customizing the page names rather than using the file names?
  2. there’s an UI bug when the file names in ‘pages’ folder are in Chinese.
1 Like

@vdonato any update on editable dataframe? It does not make sense to add glide-data to dataframe without edit features.