Skip to main content

A Flask mysql pool extension based on DBUtils

Project description

Flask-MySQLPooled

Flask-MySQLPooled is a Flask extension that allows you to access a MySQL database by connection pool.

Installation

Flask-MySQLPooled can be installed in the usual way:

python setup.py install

It is even easier to download and install the package in one go using pip:

pip install Flask-MySQLPooled

Configuration

Flask-MySQLPooled provides these settings:

name default value remarks
MySQLPooled_DATABASE_HOST ‘localhost’
MySQLPooled_DATABASE_PORT 3306
MySQLPooled_DATABASE_USER None
MySQLPooled_DATABASE_PASSWORD None
MySQLPooled_DATABASE_DB None
MySQLPooled_DATABASE_CHARSET 'utf8'
MySQLPooled_USE_UNICODE True
MySQLPooled_DATABASE_SOCKET None
MySQLPooled_SQL_MODE None
MySQLPooled_MINCACHED 0
MySQLPooled_MAXCACHED 1
MySQLPooled_MAXCONNECTIONS 1
MySQLPooled_BLOCKING False
MySQLPooled_MAXUSAGE None
MySQLPooled_SETSESSION None
MySQLPooled_RESET True
MySQLPooled_FAILURES None
MySQLPooled_PING 1

Usage

Initialize the extension:

from flask_mysqlpooled import MySQLPooled
    
mysql_pool = MySQLPooled()
mysql_pool.init_app(app)
# or
mysql_pool = MySQLPooled(app)

Obtain a cursor:

cursor = mysql_pool.get_db().cursor()

Multiple connection example:

import pymysql
from flask import Flask
from flask_mysqlpooled import MySQLPooled

app = Flask(__name__)

mysql_pool_1 = MySQLPooled(app,
                        prefix='MySQLPooled1',
                        host='host1',
                        user='user1',
                        password='password1',
                        db='db1',
                        autocommit=True,
                        cursorclass=pymysql.cursors.DictCursor,
                        mincached=0,
                        maxcached=3)
mysql_pool_2 = MySQLPooled(app,
                        prefix='MySQLPooled2',
                        host='host2',
                        user='user2',
                        password='password2',
                        db='db2',
                        autocommit=True,
                        cursorclass=pymysql.cursors.DictCursor,
                        mincached=0,
                        maxcached=3)

@app.route('/')
def index():
    cursor1 = mysql_pool_1.get_db().cursor()
    cursor2 = mysql_pool_2.get_db().cursor()
    # ...

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-MySQLPooled-0.1.1.tar.gz (3.0 kB view hashes)

Uploaded Source

Built Distribution

Flask_MySQLPooled-0.1.1-py3-none-any.whl (3.4 kB view hashes)

Uploaded Python 3

Supported by

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