A Step-By-Step Guide to Creating Streamlit Login With Sessions Using Python and MySQL — Full Source Code

Alain Saamego
3 min readJul 23, 2023
Photo by Hitesh Choudhary on Unsplash

In this tutorial, we’ll walk through how to implement user login and session management in Streamlit using a MySQL database for account storage.

Prerequisites
- Python 3
- Streamlit
- MySQL Server
- PyMySQL driver

1. Set up the MySQL database
First, we need to create a database and table to store user credentials. Connect to your MySQL server and run the following SQL:

```sql
CREATE DATABASE streamlit_logins;
USE streamlit_logins;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255),
password VARCHAR(255)
);
```

This creates a `streamlit_logins` database with a `users` table containing columns for ID, username, and password. We’ll insert user records later.

2. Create the Streamlit login UI

In your Streamlit app, create a sidebar section for the login UI with text inputs for username and password, and a button to submit:

```python
with st.sidebar:
username = st.text_input(“Username”)
password =…

--

--