首页 > 数据库 >flask 数据库连接池

flask 数据库连接池

时间:2024-06-24 09:13:28浏览次数:31  
标签:__ flask 数据库 pymysql 链接 cursor app 连接池

数据库连接池

flask操作mysql

from flask import Flask, jsonify
import pymysql

app = Flask(__name__)
app.debug=True
conn = pymysql.connect(
    user='root',
    password="123456",
    host='127.0.0.1',
    database='qtest',
    port=3306,
    autocommit=False)
cursor = conn.cursor(pymysql.cursors.DictCursor)


@app.route('/')
def index():
    sql = 'select * from user where id >%s'
    cursor.execute(sql, 1)
    res = cursor.fetchall()
    print(res)
    return jsonify(res)


if __name__ == '__main__':
    app.run()

数据库连接池

安装

pip install dbutils
#### 使用:实例化得到一个池对象---》池是单例

from dbutils.pooled_db import PooledDB
import pymysql

POOL = PooledDB(
    creator=pymysql,  # 使用链接数据库的模块
    maxconnections=6,  # 连接池允许的最大连接数,0和None表示不限制连接数
    mincached=2,  # 初始化时,链接池中至少创建的空闲的链接,0表示不创建
    maxcached=5,  # 链接池中最多闲置的链接,0和None不限制
    maxshared=3,
    # 链接池中最多共享的链接数量,0和None表示全部共享。PS: 无用,因为pymysql和MySQLdb等模块的 threadsafety都为1,所有值无论设置为多少,_maxcached永远为0,所以永远是所有链接都共享。
    blocking=True,  # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错
    maxusage=None,  # 一个链接最多被重复使用的次数,None表示无限制
    setsession=[],  # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."]
    ping=0,
    # ping MySQL服务端,检查是否服务可用。# 如:0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123456',
    database='qtest',
    charset='utf8'
)



## 在视图函数中导入使用
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def index():
    conn = POOL.connection()
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    sql = 'select * from blog_tag where id >%s'
    cursor.execute(sql, 1)
    res = cursor.fetchall()
    print(res)
    return jsonify(res)


if __name__ == '__main__':
    app.run()
  • 查看数据库连接数
show status like '%Threads%';
# 查看  Threads_connected 参数

标签:__,flask,数据库,pymysql,链接,cursor,app,连接池
From: https://www.cnblogs.com/unrealqcc/p/18264304

相关文章

  • flask
    flask介绍小而精,所有web开发需要的东西,借助于第三方集成flask框架:WerkzeugWSGI工具包和Jinja2模板引擎python-dotenv#pipinstallpython-dotenvimportosfromdotenvimportload_dotenvfromdotenvimportdotenv_values##1加载配置文件#必须在根路径下新建一个......
  • flask-session
    flask-session第三方flask-session,可以把session的内容保存在服务端安装并使用pip3installflask-session方式一fromflaskimportFlask,sessionfromflask_session.redisimportRedisSessionInterfaceimportredisapp=Flask(__name__)app.secret_key='adsfasd......
  • SqlSugar操作Sqlite数据库
    SqlSugar操作Sqlite数据库SqlSugar官网.netcore和.net5/.net6/.net7/.net8/.net9/.net10  安装SqlSugarCore。netframework4.6+   安装SqlSugar。以下代码都在一个SqlSugarMethod类中。获得数据库对象:  这里要注意的是FilePath路径为生成程序的目录\bin\Debug\ne......
  • flask 闪现(flash)
    闪现(flash)flask中得闪现存放数据的地方,一旦取了,数据就没了实现跨请求间传递数据基本使用设置:flash('欢迎你')取:get_flashed_messages()fromflaskimportFlask,request,render_template,redirect,flash,get_flashed_messagesapp=Flask(__name__)app.debug......
  • flask cbv加装饰器
    cbv加装饰器fromflaskimportFlaskfromflask.viewsimportMethodViewapp=Flask(__name__)app.debug=True###登录认证--->不能公用--》要么只能给fbv用,要么只能给cbv用defauth(func):definner(*args,**kwargs):print(args)#cbv,会有第一个参......
  • flask 定制命令
    flask定制命令使用flask-script定制命令(老版本,不用了)#flask老版本中,没有命令运行项目,自定制命令#flask-script解决了这个问题:flask项目可以通过命令运行,可以定制命令1.x2.x#新版的flask--》官方支持定制命令click定制命令,这个模块就弃用了2.x3.x#fl......
  • 第13关:存储过程1、第14关:存储过程2。(2021数据库期末一)
    目录首先需要学习和了解的知识第13关:存储过程1任务描述答案 第14关:存储过程2任务描述答案本篇博客的答案博主是学习别人得来的,敢于借鉴和学习哈哈!!首先需要学习和了解的知识了解什么是存储过程以及存储过程的基本语法。(作者博客专栏或者b站学习)了解在命令行中,执......
  • 向量数据库Milvus快速入门——AIDOCZH.COM上线Milvus中文文档
    Milvus快速入门——AIDOCZH.COM上线Milvus中文文档文章目录Milvus快速入门——AIDOCZH.COM上线Milvus中文文档Milvus官方文档的中文翻译Milvus介绍什么是Milvus向量数据库?关键概念非结构化数据嵌入向量向量相似性搜索为什么选择Milvus?支持的索引和度量标准是什么?索......
  • 如何使用ig507金融数据库的股票接口,股票API来获取MACD指标
    一、MACD指标简介MACD(MovingAverageConvergenceDivergence,移动平均收敛/发散)是一种趋势跟踪动量指标,用于分析股票或其他金融产品的价格趋势。MACD由两部分组成:差离值(DIF)和信号线(DEA)。DIF是短期(通常12天)指数移动平均线(EMA)与长期(通常26天)EMA的差值,再通过一个平滑期(通常9天)的EMA......
  • 最全Redis数据库Linux安装
    概念所有的I/O操作全在内存中进行,速度非纯快,性能非常搞。如果断电或停止服务,数据就会消失,而内存型数据库恰好可以弥补类似于MySQL等关系型数据库在硬盘当中进行I/O操作的速度上的局限。redis是key-values键值对的存储格式,非关系型安装过程安装redis数据库之前确保在Linux......