python 连接池

###连接池使用
使用mysql的时候避免频繁申请mysql的连接造成不必要的开销,可以使用连接池进行避免

一,DBUtils库


import pymysql
from DBUtils.PooledDB import PooledDB
from common.setting import *
from common.single_design import single

#需要一个单列模式装饰器
@single
class MysqlPool(object):
    def __init__(self):
        self.pool = PooledDB(pymysql,10,**MYSQL_CONF)

    def get_conn(self):
        return self.pool.connection()

mysql_pool = MysqlPool()
conn = mysql_pool.get_conn()

二、mysql if语句的用法

    from common.mysql_pool import conn
    cursor = conn.cursor()
    campus_id = 0
    school_id = 0
    school_name = ""
    campus_name = ""
    city = ""
    title = "296"
    sql = f"""
        select * from old_goods a 
            left join campus_info b on a.school=b.id 
            left join school_info c on b.school=c.id
            where if({campus_id}, b.id={campus_id}, 1=1) and
            if({school_id}, c.id={school_id}, 1=1) and 
            c.school like "%{school_name}%" and
            b.name like "%{campus_name}%" and
            b.city like "%{city}%" and
            a.title like "%{title}%"
    """
    cursor.execute(sql)
    datas = cursor.fetchall()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值