The Streamlit Epic Overview (part 1/2)

Sdílet
Vložit
  • čas přidán 12. 06. 2024
  • Streamlit is the fastest way to build and share Python data web apps, but what kind of widgets and features does it provide you with?
    I challenge myself to presenting you all the Streamlit features in 20-ish minutes tutorial (cut into a 2-part video).
    For Streamlit beginners, this will give you a good overview of all that is possible and browse around the widgets with a good idea of what you are looking for before building your first Streamlit app.
    For intermediate Streamliters, there may be a few tricks you did not know about that I accumulated from 2 years supporting users on the forum.
    📧 My email list to keep up to date with the latest news, tutorials and resources about Streamlit & friends ➡ andfanilo-newsletter.streamli...
    💰 Buy me a coffee to stay awake while editing ➡ www.buymeacoffee.com/andfanilo
    🗣️ Find my socials ➡ andfanilo.com
    👉 Links
    - Streamlit website: streamlit.io/
    - Streamlit docs: docs.streamlit.io/
    - Streamlit forum: discuss.streamlit.io/
    - Streamlit Discord (official): / discord
    - Streamlit components (official): streamlit.io/components
    - Streamlit components (community): discuss.streamlit.io/t/stream...
    - Altair Gallery: altair-viz.github.io/gallery/...
    - Bokeh: bokeh.org/
    - Plotly Express: plotly.com/python/plotly-expr...
    My tools (Affiliate links to support me!)
    - 📷 Main Camera - amzn.to/3QvTosB
    - 📷 Main Lens - amzn.to/3svYCwq
    - 🎙️ Microphone - amzn.to/47l5ewA
    - 🎵 Music & Sound Effects - www.epidemicsound.com/referra...
    - 📕 Streamlit Official Book - amzn.to/3QuRPwl
    👍 Like & Subscribe if you would like to see more videos!
    00:00 Intro
    00:24 First step with st.write
    01:13 Display text in Streamlit
    02:26 Display data in Streamlit
    03:25 Display charts in Streamlit
    06:50 Display media in Streamlit
    07:08 Bridge
    07:37 Interactive widgets in Streamlit
    12:24 Outro
    👂 I hope you like this format because this took an eternity! Because if you like it, I'm ready to give this treatment to other Python libraries like Rich, the Python standard library or Plotly Express...
    A prayer for all of those impacted by any political conflict on this globe, and to all of you dear viewers, take care of your mental health, given how the world is draining us from our emotional and mental energy.
    #streamlit #python #datascience #dataapps
    ⚠️ Disclaimer: This video is not sponsored. Links included in this description might be affiliate links. If you purchase a product or service with the links that I provide I may receive a small commission. Thank you for supporting my channel so I can continue to provide you with free content each week!

Komentáře • 137

  • @andfanilo
    @andfanilo  Před 2 lety +6

    Thanks for watching, I hope you enjoyed the format, maybe I'll do it for other Python libraries, tell me in the comments which one I should dive into next!
    EDIT: Part 2 is out on czcams.com/video/nnmBdpvN6u8/video.html 😉

  • @CodingIsFun
    @CodingIsFun Před 2 lety +27

    This video is fantastic! Thank you so much for putting all this information together. Also, the editing is outstanding. Well done!

    • @andfanilo
      @andfanilo  Před 2 lety +1

      Thanks 🥺 much much appreciated!

    • @newcooldiscoveries5711
      @newcooldiscoveries5711 Před rokem

      @@andfanilo Both you and Coding Is Fun put out some awesome videos. Thank you both!!

  • @teknotrader
    @teknotrader Před měsícem

    Man, you saved me hours of "documentation searching". Thank you!!!

    • @andfanilo
      @andfanilo  Před měsícem

      Eheh and if you watch the release updates videos you’ll be all caught up 😁

  • @headphonejames
    @headphonejames Před rokem +3

    Just chiming in on the appreciation threads. This video is amazingly informative, fun to watch, the correct pace, and is the correct length for an engineer who is about to dive into streamlit. You rock, and I will be consuming more of your content :)

    • @andfanilo
      @andfanilo  Před rokem

      Oh wow thank you very much, very appreciated! Hope to see you around the other videos then :) what type of videos would you like to see next?

  • @coval65
    @coval65 Před rokem

    You really got it man !!! Thanks for this speedy trip through the Streamlit widgets !!!
    looking forward to see also other episodes !!!

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for the support! I'd love to do one on another library, but it takes a looot of time so I just need to convince myself it's a library worth visiting and that a lot of viewers would appreciate :) what library would you like to see covered?

  • @felp6440
    @felp6440 Před rokem

    One of the best videos that i've seen about streamlit! Absolutely fantastic!

    • @andfanilo
      @andfanilo  Před rokem +1

      Thank you so much for watching 🤩! Happy Streamlitin'!

  • @falandodedados
    @falandodedados Před rokem

    Man, your video is outstanding! I'm so glad to have found you. Thank you so much for sharing such great content.

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for watching and for the support :) hope to keep seeing you around!

  • @kanakmittal3756
    @kanakmittal3756 Před 2 lety +4

    Wish there was a video like this when I was starting out. Eagerly waiting for the part 2 🔥.

    • @andfanilo
      @andfanilo  Před 2 lety

      Thanks 🥺 much appreciated!
      Just finished exporting part 2 and wow, going through caching and layout proved to be way more complex then just showing interactive widgets 😆 hope to see you there, and thanks for being so active on Discord!

    • @kanakmittal3756
      @kanakmittal3756 Před 2 lety

      @@andfanilo Yeah I can understand. Concepts like caching can be really intuitive for computer science students but to explain them in layman terms with respect to a product is a tough job. Now I am even more excited about the upcoming video.

  • @willhill8192
    @willhill8192 Před rokem

    I love these "all the features quickly" Streamlit vids.

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for watching :) hope to keep seeing you around! What will you be building?

  • @MrEdinaldolaroque
    @MrEdinaldolaroque Před 7 měsíci

    Thank you very much for this, Fanilo!

    • @andfanilo
      @andfanilo  Před 7 měsíci +1

      My pleasure, looking forward to your future Streamlit apps :D

  • @nipadasgupta
    @nipadasgupta Před 2 lety +1

    Omg! The video was epic like the title mentioned, as you started to talk about the Streamlit, it became more informative and funnier. Thank you to be an awesome teacher!

    • @andfanilo
      @andfanilo  Před 2 lety

      Thank you this means a lot 🤩 I guess I need to do one on another Python library, which one would you like to see 😄 ?

    • @nipadasgupta
      @nipadasgupta Před 2 lety

      @@andfanilo PyTorch😊.

  • @higormonteiro6936
    @higormonteiro6936 Před 2 měsíci

    Amazing piece of work. Thank you!

    • @andfanilo
      @andfanilo  Před 2 měsíci

      Thank you for watching, hope to see you on the next videos :)

  • @DyoxyneVX
    @DyoxyneVX Před rokem

    Thanks for making this video. It is both educative and entertaining/funny!

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for the compliment :) I'd like to do one more like this on another Python library, feel free to write down any suggestions :D
      Have a nice day!

  • @leandroimail
    @leandroimail Před 2 lety

    Congratulations! Was very informative. Thks!

  • @lukasmule3006
    @lukasmule3006 Před 2 lety

    Really nice video. Thanks a lot!

  • @rajeshbhusal
    @rajeshbhusal Před 26 dny

    Your videos are so funny man - I love them!

    • @andfanilo
      @andfanilo  Před 25 dny

      Glad you like them! As long as you keep watching I'll keep doing this fun cinematic style 😉

  • @js_tales
    @js_tales Před 11 měsíci

    Awesome video. Thanks for providing such a high quality content.

    • @andfanilo
      @andfanilo  Před 11 měsíci

      Thanks for watching! What Streamlit app are you going to build now??
      Have a nice day :)

  • @sidhawker2779
    @sidhawker2779 Před 7 měsíci

    Break times are underrated! Thanks for such an informative overview of what streamlit has to offer

    • @andfanilo
      @andfanilo  Před 7 měsíci

      Glad you enjoyed it :) I hope to keep seeing you around!

  • @user02v
    @user02v Před rokem

    this video is godly. thank u so much

    • @andfanilo
      @andfanilo  Před rokem

      Thank you for the support 🙂 trying to figure out the next Python library to get this treatment!

  • @juanwitt1788
    @juanwitt1788 Před 2 lety +1

    reallllllly good video man. Surprised you don't have million followers. Really

    • @andfanilo
      @andfanilo  Před 2 lety

      Awwww thanks 🤩 I guess I need to do more videos like this to get to 1 million, any Python library I should try out next 😁?

  • @wgalloPT
    @wgalloPT Před rokem

    Im very thankful for this!!!!! Thank you, thank you, thank you!!

    • @andfanilo
      @andfanilo  Před rokem

      Well thank YOU for watching and happy Streamlitin' :)

  • @pyrole
    @pyrole Před rokem

    Really liked your video both part 1 and 2, hope you make more streamlit content..Thanks

    • @andfanilo
      @andfanilo  Před rokem

      Thank you so much for your kind words! I'll keep grinding Streamlit content and bringing overedited epicness to my tutorials ahah

  • @nineteen5899
    @nineteen5899 Před 2 lety

    You are such a gem! Why the fuck is this channel so underrated! First 30 seconds, and I was glued already! Great content! Great way of explaining!

    • @andfanilo
      @andfanilo  Před 2 lety +1

      Awww 🤩 thank you so much for the support, it means a lot to me! (this video was gruesome to make ahah)
      I'm still very new to CZcams, so I have to keep grinding for about 1-2 years if I want more people to be able to watch this type of video. But there's been so much positive vibes on the comments of this video that I might actually do a similar video on another Python library sooner than I thought I would 🙂

  • @Hassibayub
    @Hassibayub Před rokem

    Outstanding... Great present 👏👏

    • @andfanilo
      @andfanilo  Před rokem +1

      Thanks for watching and for the feedback! I really need to produce one on another Python library 🙂

  • @aaronsteers
    @aaronsteers Před 9 měsíci

    Amazing video! Thank you!

    • @andfanilo
      @andfanilo  Před 9 měsíci

      Glad you liked it! Hope to keep seeing you around :)

  • @LuisArteaga007
    @LuisArteaga007 Před rokem

    Great summary!

    • @andfanilo
      @andfanilo  Před rokem +1

      Thanks for watching :) hope to see you around!

  • @DamoOne
    @DamoOne Před rokem

    Brilliant! Thank you.

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for watching :) hope to see you around!

  • @nicapotato7745
    @nicapotato7745 Před rokem

    This is great thanks

  • @rockNbrain
    @rockNbrain Před rokem

    Epic content! tks

    • @andfanilo
      @andfanilo  Před rokem +1

      Thanks for watching and for the feedback 🙂 hope to see you around here!

  • @dr.walidsoula
    @dr.walidsoula Před 2 lety

    Very nice video, thanks !

    • @andfanilo
      @andfanilo  Před 2 lety +1

      Thank you, and happy Streamlitin'!
      If I were to do another Epic walkthrough like this, is there a Python lib you would like to see?

    • @dr.walidsoula
      @dr.walidsoula Před 2 lety

      @@andfanilo yeah, maybe GeoPandas

  • @shanemacc
    @shanemacc Před rokem

    great vid!

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for the feedback! I’d like to do another epic tutorial, what Python library should I do this on?

  • @hidayathidayat4469
    @hidayathidayat4469 Před 2 lety

    Thank you

    • @andfanilo
      @andfanilo  Před 2 lety +1

      Your welcome, thanks for the support :) is there another Python library you would want to see in this format?

  • @amrendrasingh518
    @amrendrasingh518 Před 9 měsíci

    Thanks a lot

    • @andfanilo
      @andfanilo  Před 9 měsíci

      Thanks for watching :) happy streamlitin !

  • @zheshipeng
    @zheshipeng Před 11 měsíci

    Good job!

    • @andfanilo
      @andfanilo  Před 11 měsíci

      Thank you! Happy streamlitin’ :)

  • @mahapanleyser4767
    @mahapanleyser4767 Před rokem

    I like your channel!

    • @andfanilo
      @andfanilo  Před rokem

      Thank you so much for the support :) hope to see you around!

  • @an0nym0us_var
    @an0nym0us_var Před 2 lety

    Amazing 👏🏻👏🏻👏🏻❤️

    • @andfanilo
      @andfanilo  Před 2 lety +1

      Thank you for the support 🤩 trying to find the next Python library on which to do this type of video, if you have any ideas ^^

    • @an0nym0us_var
      @an0nym0us_var Před 2 lety

      @@andfanilo I would like to know about scikit-learn

  • @ccaquimbo127
    @ccaquimbo127 Před 2 lety

    Awesome 👍😎

    • @andfanilo
      @andfanilo  Před 2 lety

      😄 Thanks a lot! Hope you had some pop corn while watching!

  • @kisho2679
    @kisho2679 Před 5 měsíci

    How can streamlit be integrated with MathJax that sequentially reads data from am Excel file to display mathematically rendered list of formulas in the browser?

  • @claudebernardbadjagou4630
    @claudebernardbadjagou4630 Před 2 měsíci

    Thanks

    • @andfanilo
      @andfanilo  Před 2 měsíci

      Thanks for watching :) hope you'll watch more videos eheh

  • @heirofsam
    @heirofsam Před rokem

    this guy is gooood

  • @edsonrodas3954
    @edsonrodas3954 Před 3 měsíci

    Hello guys, I'm new in python and I recently learning all about this, but I have a doubt, why shoulld we learn streamlit if we have power bi and tableau? Thanks for your answer.

  • @duykhanhpham4237
    @duykhanhpham4237 Před rokem

    this is great!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    • @andfanilo
      @andfanilo  Před rokem

      Well thank you =D what app are you going to build now?
      Have a nice day!

  • @samuelsimons4649
    @samuelsimons4649 Před rokem

    This is epic, I agree

    • @andfanilo
      @andfanilo  Před rokem

      Eheh thanks for watching! I'll have to do another one someday

  • @Aszazzeen
    @Aszazzeen Před 10 měsíci

    Very nice overview! Just started using Streamlit for a little project. This video is really helpful. I just have a problem with the ranged slider: I'm querying my SQL database for the range the slider should represent first and it shows up in the slider. But when changing any slider position, the app gets rerun and the values are resetted to the default position (100% of the sliders range). I dont know how to use the session_state functionality with the ranged slider, i can't get it to work and it's not explained anywhere together with a ranged slider.

    • @andfanilo
      @andfanilo  Před 10 měsíci

      Hello! That's very strange, does it happen even with this small snippet?
      ```python
      import streamlit as st
      st.slider("Normal", 0, 100, 3)
      st.slider("Ranged", 0, 100, (5, 30))
      ```
      Or are you rerunning your app in another way? Are you able to build a minimal reproducible example?

  • @alessandroceccarelli6889
    @alessandroceccarelli6889 Před 2 lety +1

    Awesome material! How do you change color of selected item as from st.radio (at min 8:48)? Thank you

    • @andfanilo
      @andfanilo  Před 2 lety +1

      Hey thanks
      For the coloring part you can inject HTML/CSS in markdown, so by mapping each option to a color you can color to your choice. Like:
      ---
      d = {
      "Option A": "coral",
      "Option B": "lightblue",
      "Option C": "lightgreen"
      }
      selected = st.radio("Select", d.keys())
      st.markdown(
      f"Check status: {selected}",
      unsafe_allow_html=True,
      )

    • @alessandroceccarelli6889
      @alessandroceccarelli6889 Před 2 lety +1

      Thank you so much @@andfanilo Love your videos, they're super useful to design a complete advanced yet quick roadmap for a DS project (algorithm -> dashboard -> deployment)

    • @andfanilo
      @andfanilo  Před 2 lety +2

      @@alessandroceccarelli6889 Cool, hope to read about it soon ;)

  • @metinmanful
    @metinmanful Před rokem

    Holy shit this is fucking good
    Bro you're a gold mine

    • @andfanilo
      @andfanilo  Před rokem

      Thanks for your support and for watching 🙂 hope to do another one on a different library soonish! (feel free to write Python libs you'd like to see btw)

  • @fernandofrias8322
    @fernandofrias8322 Před 9 měsíci

    #gracias

  •  Před 2 lety

    7:50 How can I enable a button? My button starts with disable=True and after condition "x" I want to enable it.

    • @andfanilo
      @andfanilo  Před 2 lety +1

      You can start from this example:
      ```
      condition = st.checkbox("Enable button")
      if st.button("Balloons!", disabled=not condition):
      st.balloons()
      ```
      Or if the condition is defined later:
      ```
      button_placeholder = st.empty()
      condition = st.checkbox("Enable button")
      if button_placeholder.button("Balloons!", disabled=not condition):
      st.balloons()
      ```
      If the condition is stored in a deeper part of the script, I generally recommend to store the condition in session state instead:
      ```
      if "condition" not in st.session_state:
      st.session_state.condition = False
      def _toggle_state():
      st.session_state.condition = not st.session_state.condition
      if st.button("Balloons!", disabled=not st.session_state.condition):
      st.balloons()
      st.checkbox("Enable button", on_change=_toggle_state, key="toggle")
      ```

  • @science_story_time
    @science_story_time Před 7 měsíci

    ❤❤

  • @lorizoli
    @lorizoli Před rokem

    I love the cake on my cherries.

  • @wgalloPT
    @wgalloPT Před 2 lety

    Quick question: lets say I have a website ready, lets say Im using squarespace how do I go by inserting a streamlit page ? Im not a coder...im a beginner on everything, so pardon if it is a dumb question...

    • @andfanilo
      @andfanilo  Před 2 lety

      That's an interesting question! I don't know a lot about squarespace but an usual solution when you want to put a Streamlit app in an existing website is to host your Streamlit app somewhere, like the Streamlit Cloud (streamlit.io/cloud) and then use an to embed the hosted app into your website. Squarespace probably doesn't have a feature to run Python code so you'll have to run your app somewhere else like Streamlit Cloud.
      For squarespace it looks like Embed blocks (support.squarespace.com/hc/en-us/articles/206543617-Embed-Blocks) should enable you to embed your Streamlit Cloud app URL into Squarespace.
      Hope it helps you get started!

    • @wgalloPT
      @wgalloPT Před 2 lety

      @@andfanilo Thank you sooo much for the help....im going to try that!!!

  • @brunoandrade4387
    @brunoandrade4387 Před 10 měsíci

    hello could you make a video showing WebRTC demo and you make your tutorials are great

    • @andfanilo
      @andfanilo  Před 10 měsíci

      Thanks for the support. What kind of Webrtc app are you looking to build ?

  • @ekaterinakorolkoviene5824

    HEI! Has anyone noticed the bug, when Streamlit randomly changes the page to Dark theme without user changing it in setting?

    • @andfanilo
      @andfanilo  Před rokem

      Hey Ekaterina! I think I sometimes had this, page changing theme on a hard reload. I think I see it happen sometimes when I hard reload a page that has too much elements, maybe there's a race condition, but haven't been able to produce it consistently.
      If you manage to replicate it, don't hesitate to post it on github.com/streamlit/streamlit/issues :)
      Have a nice day!

  • @alisultan3174
    @alisultan3174 Před 8 měsíci

    WoW

  • @rohitgaikwad1995
    @rohitgaikwad1995 Před rokem

    hey hi, I'm getting some problems with st.number_input it says "There are multiple identical st.number_input widgets with the same generated key." can you help me

    • @andfanilo
      @andfanilo  Před rokem +1

      Hey Rohit! I suppose those number inputs have the same label? If that's the case, you'll need to add a distinct "key=" argument to each of them. Like
      a = st.number("Enter number", 1, 100, key="value_a")
      b = st.number("Enter number", 1, 100, key="value_b")
      Hope this is the actual solution :)

    • @rohitgaikwad1995
      @rohitgaikwad1995 Před rokem

      Thanks a lot and sorry but I have tried this. Like I just need an age input field. But it still shows the same error. And it's the only input field in my whole code.

    • @andfanilo
      @andfanilo  Před rokem +1

      ​@@rohitgaikwad1995 Ah that's too bad. It'll be easier to post the issue on discuss.streamlit.io/ with the full code sample, it's very strange that it's telling you there are multiple number_input if it's your only one, there may be some hidden loop somewhere 🤔

  • @samuelsimons4649
    @samuelsimons4649 Před rokem

    Plotly for life

  • @ayushsinghrathore360
    @ayushsinghrathore360 Před rokem +1

    Best video 📷📷📷📷📷📷📷📷📸

    • @andfanilo
      @andfanilo  Před rokem +1

      Thanks for the feedback 😊 really appreciated! Have a nice day

    • @atindrabusiness6239
      @atindrabusiness6239 Před rokem +1

      This is the third time I am watching the same video . once again best Video 📷📷📷📷📷📷📸

    • @andfanilo
      @andfanilo  Před rokem

      @@atindrabusiness6239 😁 I'm very grateful for those supportive comments, thank you!

  • @jackychan4640
    @jackychan4640 Před rokem

    hey Fanilo , I have problem to streamlit app ,the error display "No module name streamlit.cli" Please help

    • @andfanilo
      @andfanilo  Před rokem +1

      Hey!
      From memory, I haven't tested it but streamlit.cli was moved to another package
      Wait...it's github.com/streamlit/streamlit/issues/5146
      It's streamlit.web.cli now which you should import
      Hope it helps, have a nice day!

    • @jackychan4640
      @jackychan4640 Před rokem

      @@andfanilo thanks

    • @jackychan4640
      @jackychan4640 Před rokem

      Sorry I haven't tested it yet 🙂 I will tell you later

  • @techyguyaditya
    @techyguyaditya Před rokem

    Imagine streamlit becomes a mainstream platform like Flutter!

    • @andfanilo
      @andfanilo  Před rokem

      Yep, still growing very fast!
      Well, I’ll have to produce an even better, updated epic tutorial of Streamlit then 😎

  • @13579TV
    @13579TV Před rokem

    10:30 text area

  • @michaelngecha9227
    @michaelngecha9227 Před rokem

    I am hearing a bit of Shayan Wahedi in this video😂

    • @andfanilo
      @andfanilo  Před rokem

      Ahah I had no clue who that creator was but his pinned video is very inspiring 😁🤣 I am definitely doing another video with this style and will call it "How to become a high status Alpha Data Scientist"
      now I wonder, what's the Python package that makes people feel like overpowered Data Scientists? 🙃

  • @TriangleLife__Raj_Mrittik
    @TriangleLife__Raj_Mrittik Před 11 měsíci

    How do you only have 4k subs 💀

    • @andfanilo
      @andfanilo  Před 11 měsíci

      CZcamsr life is hard 😁

  • @spyros.lefkaditis2071

    Rip people like me who used js css and html for 1and half year to learn them and still sucked and I beilive in two months you create professional looking stuff with streamlit in 50 minutes

    • @andfanilo
      @andfanilo  Před rokem

      BUUUT with those HTML/CSS/JS skills you can integrate new custom components into Streamlit 😁 streamlit.io/components / czcams.com/video/TqOGBOHHxrU/video.html / streamlit-components-tutorial.netlify.app/
      And you'll have Streamlit apps that look like no one else's :)

  • @Tenly2009
    @Tenly2009 Před rokem

    2 minutes? 🙄

    • @andfanilo
      @andfanilo  Před rokem

      Aw shoot I didn't understand the previous "2 minutes" comment, you mean you understood 2 minutes from the thumbnail? Sorry for the confusion then..I'll fix that thumbnail

    • @Tenly2009
      @Tenly2009 Před rokem

      @@andfanilo I did actually think the thumbnail was dishonest - but after your comment here, I looked at it again and see that maybe the clock face is supposed to represent a 0 making it “20 minutes”. But yeah, that wasn’t obvious and I originally thought it was 2 minutes. I watched the whole thing though - and it was good. Thanks 🙏!

  • @abdollahchelasi1477
    @abdollahchelasi1477 Před rokem

    I wrote a todo app with streamlit. When I upload it, it will be remove after a few hours. How can I give an address in the database?
    sqlite3.connect('picscols.db')
    When I put it in github and deploy it, how should I give sqlite3 address in github?

    • @andfanilo
      @andfanilo  Před rokem

      Hello!
      Did you deploy your app on Streamlit Cloud? Unfortunately apps deployed there are stateless, or put tnother way they are destroyed and recreated regularly in the Cloud. If you save data locally in a deployed app, it will be destroyed once in a while by this process.
      You'll need to save the data in an external database, for example Google Sheets or Firestore. Check out docs.streamlit.io/streamlit-cloud/get-started/deploy-an-app/connect-to-data-sources for a list of tutorials to connect and store data to. Or check out czcams.com/video/8CjjVtHOT1E/video.html for a very quick example of storing data in Firestore instead of a local SQLite
      Hope it helps you get started!