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 3 Date Input Explained

3 3 Date Input Explained

Key Concepts

st.date_input

st.date_input is a Streamlit widget that provides a calendar-like interface for users to select a date. This widget is particularly useful in applications where date selection is required, such as scheduling, booking, or filtering data by date.

Date Format

The date input widget typically follows the ISO 8601 format (YYYY-MM-DD). This format is widely accepted and ensures consistency across different systems. Users can select a date from the calendar, and the selected date will be displayed in the specified format.

Default Date

The default date is the initial date displayed when the widget is loaded. This can be set using the value parameter. If no default date is specified, the current date will be used.

Date Range

The date range specifies the minimum and maximum dates that can be selected. This is useful for restricting the selection to a specific period. The range can be set using the min_value and max_value parameters.

Examples

Example 1: Basic Date Input

import streamlit as st

selected_date = st.date_input("Select a date")
st.write(f"You selected: {selected_date}")
    

Example 2: Setting a Default Date

import streamlit as st
from datetime import date

default_date = date(2023, 10, 1)
selected_date = st.date_input("Select a date", value=default_date)
st.write(f"You selected: {selected_date}")
    

Example 3: Restricting Date Range

import streamlit as st
from datetime import date

min_date = date(2023, 1, 1)
max_date = date(2023, 12, 31)
selected_date = st.date_input("Select a date", min_value=min_date, max_value=max_date)
st.write(f"You selected: {selected_date}")
    

Analogies

Think of st.date_input as a digital calendar where users can pick a specific day. The default date is like the current day highlighted when you open the calendar. The date range is like setting boundaries on the calendar, ensuring users can only select dates within a specific period.

By mastering st.date_input, you can enhance your Streamlit applications by providing users with a convenient and intuitive way to select dates, making your apps more interactive and user-friendly.