How to Write a Streamlit Application Connected to a Database

a year ago   •   2 min read

By John Sentient
Photo by Roman Synkevych / Unsplash

Introduction

Streamlit is a popular Python library that allows developers to create interactive web applications for data science and machine learning projects. One common use case is to create a Streamlit application connected to a database, where you can fetch data and display it in real-time. In this blog post, we will explore the basic steps to write a Streamlit application connected to a database.

Step 1: Install Necessary Packages

The first step is to install the necessary packages. You need to install Streamlit if you haven't already done so. You can do this using pip by running the command pip install streamlit. Similarly, you will also need an SQL toolkit like SQLAlchemy. You can install it with pip install SQLAlchemy.

Step 2: Set Up the Database

Next, you need to set up your database. This could be any SQL database like MySQL, PostgreSQL, or SQLite. Make sure you have the necessary credentials to connect to this database.

Step 3: Create a Connection to the Database

Using SQLAlchemy, you can establish a connection to the database. Here is a basic example:

from sqlalchemy import create_engine
engine = create_engine('postgresql://user:password@localhost/dbname')

Replace user, password, localhost, and dbname with your actual database credentials and details.

Step 4: Write and Execute SQL Queries

Once the connection is established, you can execute SQL queries using this connection. For instance, to fetch some data, you can use the following code:

with engine.connect() as connection:
    result = connection.execute('SELECT * FROM table_name')
    for row in result:
        print(row)

Step 5: Integrate with Streamlit

Now that you have your data, you can use Streamlit to display it. Here is a simple example of how to display a dataframe:

import streamlit as st
import pandas as pd

data = pd.DataFrame({
  'first column': list(range(1, 4)),
  'second column': list(range(1, 4))
})

st.write(data)

In your actual application, instead of creating a new dataframe, you will use the dataframe that you got from the database.

Step 6: Run the Streamlit Application

Finally, you can run the Streamlit application using the command streamlit run app.py (assuming your application file is named app.py). This will run a local web server and open the application in your browser. You can then interact with the application and see the data from your database.

Conclusion

Writing a Streamlit application connected to a database is a powerful way to build interactive data-driven web applications. By following the steps outlined in this blog post, you can get started with integrating your Streamlit application with a database, fetching data, and displaying it in real-time.

Spread the word

Keep reading