python的dbpoolpy库使用connect_db和数据库交互例子

python的dbpoolpy库使用connect_db和数据库交互例子

介绍

python使用此库可以方便的操作数据库数据,主要是用在关系型数据库,可以支持SQLite3, MySQL, PostgreSQL

安装教程
pip install dbpoolpy
特点
  • 和数据库交互方便,不需要写sql语句
  • 支持三种数据库类型:SQLite3, MySQL, PostgreSQL
  • 可同时连接多个数据库
使用说明

connect_db可以返回连接池的一个连接,在with语句中执行多步数据库操作,期间不会释放连接,
with语句执行完后,会自动把数据库连接放回到连接池里。

使用connect_db和数据库交互

pymysql安装方法:pip install pymysql

参考以下代码

import pymysql
from dbpoolpy import init_pool, connect_db

DATABASE = {
    'dbcon1':  {              # 连接池名称
        'engine': pymysql,    # 取数据库所使用的插件:mysql使用pymysql, SQLite3使用python自带的sqlite3, PostgreSQL使用psycopg2
        'database': '',       # 默认连接的数据库
        'host': '',           # 数据库地址
        'port': 51000,        # 数据库端口
        'user': '',           # 数据库用户名
        'password': '',       # 数据库的密码
        'charset': 'utf8',    # 字符集类型
        'mincached': 0,       # 初始化连接数
        'maxconnections': 10  # 数据库连接池的最大连接数
    }
}

init_pool(DATABASE)

with connect_db('dbcon1') as db:

    # 只取第一条数据
    first_data = db.select("table_name").fields(
         "field1, field2, field3"
    ).where(
        field1='152901',
        field2=("between", ['2022-04-01', '2022-05-01']),
        field3=("in", [1,2,3])
    ).first()
    print(first_data)

    # 取所有数据
    all_datas = db.select("table_name").where(
        field2=(">", '2022-04-01'),
        field3=6,
        field4=("in", ["third_ML", "third_XZ", "third_MF"]),
    ).group_by(           # group_by 可省略
        "field2"
    ).order_by(           # order_by 可省略
        'field1 desc'
    ).limit(              # limit 可省略
        20
    ).all(isdict=False)   # isdict默认为True,返回是dict,如果False, 则返回元组
    print(all_datas)

    # 插入数据
    new_id = db.insert("table_name").values(     # 如果表中有自增主键id,则会返回new_id,如果没有,则不会返回new_id
        field1="value1",     # 字符串值
        field2=3,            # 数字
        field3="2023-05-12", # 日期值
    ).execute()
    
    # 更新数据
    db.update("table_name").values(
        field1="value1",     # 字符串值
        field2=3,            # 数字
        field3="2023-05-12", # 日期值
    ).where(
        field2=(">", '2022-04-01'),
        field3=6,
        field4=("in", ["third_ML", "third_XZ", "third_MF"]),
    ).execute()

    # 删除数据
    db.delete("table_name").where(
        field1=(">", '2022-04-01'),
        field2=6,
    ).limit(20).execute()    # limit可省略

    # 执行查寻sql语句
    datas = db.query(sql="SELECT * FROM table_name where id=%s", args=(23,))

    # 执行增改删sql
    db.execute(sql="DELETE from table_name where id=%s", args=(23,))

代码非常的简洁, 可以实现增删改查的操作。

参考地址:https://gitee.com/zsq_tee/dbpoolpy

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值