DEV Community

Khalil Habib Shariff
Khalil Habib Shariff

Posted on • Edited on

How To Connect Flask App To Any Database

Connecting Flask to MySQL, PostgreSQL, MongoDB, and Firebase

Flask is a lightweight and flexible web framework for Python. It is a popular choice for developing web applications of all sizes.

Flask does not come with a built-in database abstraction layer (DAL). This means that developers need to choose and install a third-party DAL such as SQLAlchemy or Peewee.

Here are some tips on how to connect Flask to MySQL, PostgreSQL, MongoDB, and Firebase:

Connecting Flask to MySQL

To connect Flask to MySQL, you will need to install the MySQLdb library. Once you have installed MySQLdb, you can import it into your Flask application and create a connection to the MySQL database.

Here is an example of how to connect Flask to MySQL:

pip install Flask-MySQLdb
pip install PyMySQL
Enter fullscreen mode Exit fullscreen mode
from flask import Flask
import MySQLdb

app = Flask(__name__)

# Create a connection to the MySQL database
db = MySQLdb.connect(
    host='localhost',
    user='root',
    password='password',
    database='my_database',
)

# Create a cursor object
cursor = db.cursor()

# Execute a SQL query
cursor.execute('SELECT * FROM users')

# Get the results of the query
results = cursor.fetchall()

# Close the cursor and the connection
cursor.close()
db.close()

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Connecting Flask to PostgreSQL

To connect Flask to PostgreSQL, you will need to install the psycopg2 library. Once you have installed psycopg2, you can import it into your Flask application and create a connection to the PostgreSQL database.

Here is an example of how to connect Flask to PostgreSQL:

from flask import Flask
import psycopg2

app = Flask(__name__)

# Create a connection to the PostgreSQL database
conn = psycopg2.connect(
    host='localhost',
    user='postgres',
    password='password',
    database='my_database',
)

# Create a cursor object
cursor = conn.cursor()

# Execute a SQL query
cursor.execute('SELECT * FROM users')

# Get the results of the query
results = cursor.fetchall()

# Close the cursor and the connection
cursor.close()
conn.close()

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Connecting Flask to MongoDB

To connect Flask to MongoDB, you will need to install the pymongo library. Once you have installed pymongo, you can import it into your Flask application and create a connection to the MongoDB database.

Here is an example of how to connect Flask to MongoDB:

from flask import Flask
import pymongo

app = Flask(__name__)

# Create a connection to the MongoDB database
client = pymongo.MongoClient('localhost', 27017)
db = client['my_database']

# Get the users collection
users_collection = db['users']

# Find all users
users = users_collection.find()

# Close the connection
client.close()

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Connecting Flask to Firebase

To connect Flask to Firebase, you will need to install the Pyrebase library. Once you have installed Pyrebase, you can import it into your Flask application and initialize the Firebase Realtime Database.

Here is an example of how to connect Flask to Firebase:

from flask import Flask
import pyrebase

app = Flask(__name__)

# Initialize the Firebase Realtime Database
config = {
    'apiKey': 'YOUR_API_KEY',
    'authDomain': 'YOUR_AUTH_DOMAIN',
    'databaseURL': 'YOUR_DATABASE_URL',
    'projectId': 'YOUR_PROJECT_ID',
    'storageBucket': 'YOUR_STORAGE_BUCKET',
    'messagingSenderId': 'YOUR_MESSAGING_SENDER_ID'
}

firebase = pyrebase.initialize_app(config)

# Get the users reference
users_ref = firebase.database().reference('users')

# Get all users
users = users_ref.get()

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

These are just a few examples of how to connect Flask to MySQL, PostgreSQL, MongoDB, and Firebase. There are many other ways to do this, and the best approach for you will depend on your specific needs.

Top comments (0)