Skip to main content

MySQLdb extension for Flask

Project description

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 (0.12.4 or later) and mysqlclient. Flask-MySQLdb is compatible with and tested with Python 3.7+. It should work on any version from Python 2.7 and up, but is not supported.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-MySQLdb-1.0.1.tar.gz (4.3 kB view details)

Uploaded Source

File details

Details for the file Flask-MySQLdb-1.0.1.tar.gz.

File metadata

  • Download URL: Flask-MySQLdb-1.0.1.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.1

File hashes

Hashes for Flask-MySQLdb-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1c76e9dcc2c2f1f48981e3157c9423358f68a2cdf901a3baf5531c32b13c5826
MD5 e8c435afec1a4aa3c13294c4e11a90c6
BLAKE2b-256 655c2a116c53024f74e8b45f8b50f70ff908d0382eb5ecb0e4addd8413d0c0eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page