Skip to main content

Flask-MySQLdb Build Status

Flask-MySQLdb provides MySQL connection for Flask.

Quickstart

First, you may need to install some dependencies for mysqlclient if you don't already have them, see here.

Second, install Flask-MySQLdb:

pip install flask-mysqldb

Flask-MySQLdb depends, and will install for you, recent versions of Flask (1.0.4 or later) and mysqlclient. Flask-MySQLdb is compatible with and tested with Python 3.8+.

Next, add a MySQL instance to your code:

from flask import Flask
from flask_mysqldb import MySQL

app = Flask(__name__)

# Required
app.config["MYSQL_USER"] = "user"
app.config["MYSQL_PASSWORD"] = "password"
app.config["MYSQL_DB"] = "database"
# Extra configs, optional:
app.config["MYSQL_CURSORCLASS"] = "DictCursor"
app.config["MYSQL_CUSTOM_OPTIONS"] = {"ssl": {"ca": "/path/to/ca-file"}}  # https://mysqlclient.readthedocs.io/user_guide.html#functions-and-attributes

mysql = MySQL(app)

@app.route("/")
def users():
    cur = mysql.connection.cursor()
    cur.execute("""SELECT user, host FROM mysql.user""")
    rv = cur.fetchall()
    return str(rv)

if __name__ == "__main__":
    app.run(debug=True)

Other configuration directives can be found here.

Why

Why would you want to use this extension versus just using MySQLdb by itself? The only reason is that the extension was made using Flask's best practices in relation to resources that need caching on the app context. What that means is that the extension will manage creating and teardown the connection to MySQL for you while with if you were just using MySQLdb you would have to do it yourself.

Resources

Release files for Flask-MySQLdb 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-MySQLdb 2.0.0
File Size Uploaded
Flask-MySQLdb-2.0.0.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Flask-MySQLdb 2.0.0
File Interpreter ABI Platform
Flask_MySQLdb-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.4 kB

Release files / Flask-MySQLdb-2.0.0.tar.gz

Download URL Flask-MySQLdb-2.0.0.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4f3e15013a2d48c8eaccdebcfedc3b1c4a29be77de6e7c746ad589ab5afcd3ef
BLAKE2b-256 checksum
How to use checksums
b480afdc313a3875d15c3ba32de302fa161890ceae762576f890fde74f29a01d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / Flask_MySQLdb-2.0.0-py3-none-any.whl

Download URL Flask_MySQLdb-2.0.0-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84ad09c862a408709538d237712426a6d34ed3e7e971effd6c7186023cd2f2f5
BLAKE2b-256 checksum
How to use checksums
31c4c91b4a704c1e2467ecfd2c47a9c6f609af37cde7380698aace19dce24f53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.1

1 release file

1.0.0

1 release file

0.2.0

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page