python3 flask使用连接池连接数据库实例

 更新时间:2023年08月07日 09:43:24   作者:icheeringsoul  
这篇文章主要为大家介绍了python3 flask使用连接池连接数据库实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python使用连接池

在真实的线上环境连接数据库一般都是要使用连接池的,连接池统一管理数据库连接,可以提高应用性能。

python数据库连接池可以使用dbutils和PySQLPool但是这两个库似乎都只支持python2不支持

python3,最后折腾了半天,Python3最后我使用的是sqlalchmey里的连接池工具sqlalchemy.pool,把连接池应用到flask,我使用的是下面的方式,个人认为比较合理

示例

from flask import Flask, _app_ctx_stack, current_app
import MySQLdb
import sqlalchemy.pool as pool
app = Flask(__name__)
app.config.from_pyfile('config.py')
@app.teardown_appcontext
def close_database_connection(error=None):
    con = getattr(_app_ctx_stack, 'database', None)
    if con:
        con.close()
def getconn(db_conf=None):
    if db_conf is None:
        db_conf = current_app.config['DB_CONFIG']
    conn = MySQLdb.connect(**db_conf)
    return conn
mypool = pool.QueuePool(getconn, max_overflow=10, pool_size=5)
app.db_pool = mypool
def get_db():
    ctx = _app_ctx_stack.top
    con = getattr(ctx, 'database', None)
    if con is None:
        con = current_app.db_pool.connect()
        ctx.database = con
    return con
@app.route('/')
def index():
    con = get_db()
    cursor = con.cursor(cursorclass=MySQLdb.cursors.DictCursor)
    rv = cursor.execute('select 1')
    return str(rv)
if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True, port=5001)

因为sqlalchemy里有连接池模块,直接使用下面的方式在需要的地方导入db我猜测也是连接池的管理方式,未测试

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
db.init_app(app)
....

有需要的朋友可以借鉴参考下,更多关于python3 flask连接数据库的资料请关注脚本之家其它相关文章!

相关文章

  • Python实现CART决策树算法及详细注释

    Python实现CART决策树算法及详细注释

    CART算法是一种树构建算法,既可以用于分类任务,又可以用于回归,本文仅讨论基本的CART分类决策树构建,不讨论回归树和剪枝等问题,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • Python连接phoenix的方法示例

    Python连接phoenix的方法示例

    这篇文章主要介绍了Python连接phoenix的方法,简单说明了phoenix的概念、功能并结合具体实例形式分析了Python连接phoenix的相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • python 类相关概念理解

    python 类相关概念理解

    这篇文章主要介绍了简单了解python类概念,具有一定借鉴价值,需要的朋友可以参考下,希望能够给你带来帮助
    2021-09-09
  • 20行代码教你用python给证件照换底色的方法示例

    20行代码教你用python给证件照换底色的方法示例

    这篇文章主要介绍了20行代码教你用python给证件照换底色的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python移位密码、仿射变换解密实例代码

    Python移位密码、仿射变换解密实例代码

    凯撒密码(Caesar 密码)是最早的代换密码,也是古典对称密码体制的典型代表,已经初步体现出近代密码系统的雏形,这篇文章主要给大家介绍了关于Python移位密码、仿射变换解密的相关资料,需要的朋友可以参考下
    2021-06-06
  • 详解pycharm的python包opencv(cv2)无代码提示问题的解决

    详解pycharm的python包opencv(cv2)无代码提示问题的解决

    这篇文章主要介绍了详解pycharm的python包opencv(cv2)无代码提示问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python实现批量修改图片格式和大小的方法【opencv库与PIL库】

    Python实现批量修改图片格式和大小的方法【opencv库与PIL库】

    这篇文章主要介绍了Python实现批量修改图片格式和大小的方法,结合实例形式分析了Python基于opencv库与PIL库针对图片的读写、转换相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • 基于PyQt5制作一个表情包下载器

    基于PyQt5制作一个表情包下载器

    每次和朋友聊天苦于没有表情包,而别人的表情包似乎是取之不尽、用之不竭。作为一个程序员哪能甘愿认输,所以本文将用Python制作一个表情包下载器供大家斗图,需要的可以参考一下
    2022-03-03
  • Python流程控制常用工具详解

    Python流程控制常用工具详解

    这篇文章主要介绍了Python流程控制常用工具详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Elasticsearch之倒排索引及索引操作

    Elasticsearch之倒排索引及索引操作

    这篇文章主要为大家介绍了Elasticsearch之倒排索引及索引操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04

最新评论