Skip to content

wanganhong/flask-mysqlpooled

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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()
    # ...

About

A Flask mysql pool extension based on DBUtils

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages