Flow control in Streamlit
As we talked about just before, there are two solutions to this data upload default situation. We can provide a default file to use until the user interacts with the application, or we can stop the app until a file is uploaded. Let’s start with the first option. The following code uses the st.file_uploader()
function from within an if
statement. If the user uploads a file, then the app uses that; if they do not, then we default to the file we have used before:
import altair as alt
import pandas as pd
import seaborn as sns
import streamlit as st
st.title("Palmer's Penguins")
st.markdown("Use this Streamlit app to make your own scatterplot about penguins!")
penguin_file = st.file_uploader("Select Your Local Penguins CSV (default provided)")
if penguin_file is not None:
penguins_df = pd.read_csv(penguin_file)
else:
penguins_df = pd.read_csv("penguins.csv")
selected_x_var = st.selectbox(
...