Welcome to Flask-MySQLdb’s documentation!¶
Flask-MySQLdb provides MySQL connection for Flask.
Quickstart¶
First, 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 on Python 2.7, 3.5, 3.6 and 3.7.
Next, add a MySQL
instance to your code:
from flask import Flask
from flask_mysqldb import MySQL
app = Flask(__name__)
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)
Configuration¶
MySQL
understands the following configuration
directives:
MYSQL_HOST |
name of host to connect to. Default: use the local host via a UNIX socket (where applicable) |
MYSQL_USER |
user to authenticate as. Default: current effective user. |
MYSQL_PASSWORD |
password to authenticate with. Default: no password. |
MYSQL_DB |
database to use. Default: no default database. |
MYSQL_PORT |
TCP port of MySQL server. Default: 3306. |
MYSQL_UNIX_SOCKET |
location of UNIX socket. Default: use default location or TCP for remote hosts. |
MYSQL_CONNECT_TIMEOUT |
Abort if connect is not completed within given number of seconds. Default: 10 |
MYSQL_READ_DEFAULT_FILE |
MySQL configuration file to read; see the MySQL documentation for mysql_options(). |
MYSQL_USE_UNICODE |
If True, CHAR and VARCHAR and TEXT columns are returned as Unicode strings, using the configured character set. |
MYSQL_CHARSET |
If present, the connection character set will be changed to this character set, if they are not equal. Default: ‘utf-8’ |
MYSQL_SQL_MODE |
If present, the session SQL mode will be set to the given string. |
MYSQL_CURSORCLASS |
If present, the cursor class will be set to the given string. |