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
6 1 1 Setting up Streamlit Sharing Explained

1 1 Setting up Streamlit Sharing Explained

Key Concepts

Explanation

1. Streamlit Sharing

Streamlit Sharing is a platform that allows you to deploy and share your Streamlit applications with the world. It integrates seamlessly with GitHub, making it easy to deploy your apps directly from your GitHub repository.

2. GitHub Repository

A GitHub repository is a place where you store your Streamlit app code. Streamlit Sharing requires your app code to be hosted on GitHub. This allows for version control and easy collaboration.

3. Deployment

Deployment is the process of making your Streamlit app accessible online. With Streamlit Sharing, you can deploy your app with just a few clicks, directly from your GitHub repository.

4. Environment Variables

Environment variables are used to securely store sensitive information like API keys. Streamlit Sharing allows you to set environment variables directly from the platform, ensuring your sensitive information is kept secure.

Examples

Example 1: Setting up Streamlit Sharing

To set up Streamlit Sharing, follow these steps:

  1. Create a GitHub repository and push your Streamlit app code to it.
  2. Go to the Streamlit Sharing website and log in with your GitHub account.
  3. Click on "New App" and select your GitHub repository.
  4. Configure any necessary environment variables.
  5. Click "Deploy" to make your app live.

Example 2: Using Environment Variables

import streamlit as st
import os

api_key = os.getenv("API_KEY")
st.write(f"API Key: {api_key}")
    

Analogies

Think of Streamlit Sharing as a hosting service for your Streamlit apps, similar to how a web hosting service hosts your website. Your GitHub repository is like a storage unit where you keep all the materials needed to build your website. Deployment is like making your website live and accessible to the public. Environment variables are like a safe where you store your important keys and documents, ensuring they are secure.

By mastering the setup of Streamlit Sharing, you can easily deploy and share your Streamlit applications with the world, making your data science projects accessible to a broader audience.