Streamlit
1 Introduction to Streamlit
1.1 What is Streamlit?
1.2 Why use Streamlit?
1.3 Setting up the environment
1.4 Creating your first Streamlit app
2 Basic Components
2.1 Text elements
2.1 1 Displaying text
2.1 2 Formatting text
2.2 Data display elements
2.2 1 Displaying data frames
2.2 2 Displaying tables
2.3 Input widgets
2.3 1 Text input
2.3 2 Number input
2.3 3 Date input
2.3 4 Dropdown selection
2.3 5 Slider
2.3 6 Checkbox
2.3 7 Radio buttons
2.3 8 Buttons
3 Advanced Components
3.1 Interactive widgets
3.1 1 Multiselect
3.1 2 File uploader
3.1 3 Color picker
3.2 Media elements
3.2 1 Displaying images
3.2 2 Displaying videos
3.2 3 Displaying audio
3.3 Chart elements
3.3 1 Line chart
3.3 2 Bar chart
3.3 3 Area chart
3.3 4 Scatter chart
3.3 5 Map chart
4 Layout and Styling
4.1 Layout components
4.1 1 Columns
4.1 2 Tabs
4.1 3 Expander
4.2 Styling elements
4.2 1 Custom CSS
4.2 2 Theming
4.2 3 Adding custom fonts
5 State Management
5.1 Session state
5.1 1 Managing state across reruns
5.1 2 Persisting state
5.2 Caching
5.2 1 Caching functions
5.2 2 Caching data
6 Deployment
6.1 Deploying to Streamlit Sharing
6.1 1 Setting up Streamlit Sharing
6.1 2 Deploying your app
6.2 Deploying to other platforms
6.2 1 Deploying to Heroku
6.2 2 Deploying to AWS
6.2 3 Deploying to Google Cloud
7 Best Practices
7.1 Writing clean and maintainable code
7.2 Optimizing performance
7.3 Handling errors and exceptions
7.4 Version control with Git
8 Advanced Topics
8.1 Integrating with other libraries
8.1 1 Integrating with Pandas
8.1 2 Integrating with Plotly
8.1 3 Integrating with TensorFlow
8.2 Building complex apps
8.2 1 Creating multi-page apps
8.2 2 Handling authentication
8.2 3 Building interactive dashboards
8.3 Custom components
8.3 1 Creating custom widgets
8.3 2 Extending Streamlit with custom components
9 Case Studies
9.1 Building a data exploration app
9.2 Building a machine learning model deployment app
9.3 Building a real-time data visualization app
2 3 Input Widgets Explained

3 Input Widgets Explained

Key Concepts

Text Input

The st.text_input widget is used to collect text input from users. This is useful for gathering names, addresses, or any other textual data.

import streamlit as st

user_name = st.text_input("Enter your name")
st.write(f"Hello, {user_name}!")
    

Number Input

The st.number_input widget allows users to input numeric values. This widget is ideal for collecting quantities, ages, or any numerical data.

import streamlit as st

age = st.number_input("Enter your age", min_value=0, max_value=120)
st.write(f"You are {age} years old.")
    

Checkbox

The st.checkbox widget provides a simple way for users to select or deselect options. This is useful for creating binary choices.

import streamlit as st

agree = st.checkbox("Do you agree?")
if agree:
    st.write("You agreed!")
else:
    st.write("You did not agree.")
    

Selectbox

The st.selectbox widget allows users to choose from a list of options. This is useful for creating dropdown menus or single-choice questions.

import streamlit as st

option = st.selectbox("Choose an option", ["Option 1", "Option 2", "Option 3"])
st.write(f"You selected: {option}")
    

Examples

Here are some examples to illustrate the concepts:

import streamlit as st

st.title("Input Widgets in Streamlit")

st.markdown("## Text Input")
user_name = st.text_input("Enter your name")
st.write(f"Hello, {user_name}!")

st.markdown("## Number Input")
age = st.number_input("Enter your age", min_value=0, max_value=120)
st.write(f"You are {age} years old.")

st.markdown("## Checkbox")
agree = st.checkbox("Do you agree?")
if agree:
    st.write("You agreed!")
else:
    st.write("You did not agree.")

st.markdown("## Selectbox")
option = st.selectbox("Choose an option", ["Option 1", "Option 2", "Option 3"])
st.write(f"You selected: {option}")