Created
Sep 1, 2025 10:05 PM
Tags
Streamlit Study Notes
Streamlit is a Python framework designed for creating interactive web applications for data analysis, visualization, and machine learning.
Step-by-Step Guide
1. Installation and Setup
- Recommended: Use a virtual environment to keep your project dependencies isolated.
 
Creating and activating a virtual environment (Python ≥ 3.8 recommended):
python -m venv streamlit_env
source streamlit_env/bin/activate  # macOS/Linux
- Install Streamlit:
 
pip install streamlitCheck your installation by typing:
streamlit helloThis opens a demo app in your browser.
2. Creating Your First Streamlit App
Create a new Python file, e.g., app.py:
# Simple Streamlit App
import streamlit as st
st.title("My First Streamlit App")
st.write("Hello, Streamlit! 🎉")- Run the app:
 
streamlit run app.py3. Building an Interactive App: A Professional Example
Here is a more advanced app demonstrating common functionalities educators or analysts might use:
Example: Interactive Data Exploration App (app.py):
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
# Load dataset
@st.cache_data
def load_data():
    df = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv")
    return df
df = load_data()
st.title("Interactive Iris Dataset Explorer")
st.header("Dataset Preview")
st.write(df.head())
# Sidebar widgets
st.sidebar.header("Filter Data")
species = st.sidebar.multiselect(
    "Select Species",
    options=df["species"].unique(),
    default=df["species"].unique()
)
filtered_df = df[df["species"].isin(species)]
st.header("Filtered Data")
st.write(filtered_df)
# Visualization
st.header("Data Visualization")
fig, ax = plt.subplots()
ax.scatter(filtered_df["sepal_length"], filtered_df["sepal_width"], c='blue', alpha=0.5)
ax.set_xlabel("Sepal Length")
ax.set_ylabel("Sepal Width")
ax.set_title("Sepal Length vs. Sepal Width")
st.pyplot(fig)
- Run the app again:
 
streamlit run app.py
This provides an interactive dashboard for exploring Iris dataset features, filtering, and visualization.
4. Streamlit Cloud Deployment
Streamlit apps can be easily deployed using Streamlit Cloud:
Step-by-step deployment process:
- Prerequisites:
 - Create a GitHub account.
 - Push your project code (
app.py) to GitHub. - Directory structure for your project:
 
CopyEdit
streamlit-iris-app/
├── app.py
├── requirements.txt
- Create 
requirements.txt: 
pip freeze > requirements.txt
This captures dependencies for deployment.
5. Deploying to Streamlit Cloud
- Visit https://streamlit.io/cloud, sign in, and select "New app".
 - Connect your GitHub account and select your repo.
 - Choose the branch (usually main) and specify your Python file (default: 
app.py). - Click "Deploy".
 
Your app will be live in minutes!
Key Streamlit Concepts
- Widgets: Create interactive UI elements like sliders, dropdowns, buttons, checkboxes, and multiselect.
 - Layouts: Use 
st.sidebar,st.columns, andst.tabsto organize UI elements. - Caching: Optimize app performance with 
@st.cache_datadecorator to avoid repeated computations or data reloads. 
Streamlit Widgets Quick Reference
Widget  | Example Usage  | Description  | 
Slider  | st.slider() | Numeric range slider  | 
Dropdown  | st.selectbox() | Dropdown list  | 
Checkbox  | st.checkbox() | Checkbox  | 
Multiselect  | st.multiselect() | Multiple-choice dropdown  | 
Text input  | st.text_input() | Single-line text  | 
File uploader  | st.file_uploader() | File upload control  | 
Common Deployment Issues
- Dependency management: Always use 
requirements.txtfor dependencies. - Large files or datasets: Use external storage solutions (e.g., GitHub raw URL, AWS S3).
 
