Python3 学习之basedao.py的优化详解

本文介绍了Python3中的BaseDao类,这是一个用于简便数据库操作的基类。主要内容包括查询单个对象、多个对象、按主键查询和分页查询。BaseDao类使用了DBUtils库的PooledDB模块,提供了游标和连接池管理,通过字典形式存储查询结果,简化了数据获取。示例展示了如何使用BaseDao进行各种查询操作。
摘要由CSDN通过智能技术生成

本文和大家分享的主要是Python3 basedao.py优化相关内容,一起来看看吧,希望对大家学习python有所帮助。

 

主要功能:

 

1.查询单个对象:

 

所需参数:表名,过滤条件

 

2.查询多个对象:

 

所需参数:表名,过滤条件

 

3.按主键查询:

 

所需参数:表名,值

 

4.分页查询:

 

所需参数:表名,页码,每页记录数,过滤条件

 

调用方法锁获取的对象都是以字典形式存储,例如:查询user表(字段有id,name,age)里的id=1的数据返回的对象为user = {"id":1,"name","zhangsan","age":18},我们可以通过user.get("id")来获取id值,非常方便,不用定义什么类对象来表示。如果查询的是多个,那么多个字典对象将会存放在一个列表里返回。

 

具体代码如下:

 

 

  1 import json, os, sys, time

  2

  3 import pymysql

  4 from DBUtils import PooledDB

  5

  6 class BaseDao(object):

  7     """

  8     简便的数据库操作基类

  9     """

 10     __config = {}                   # 数据库连接配置

 11     __conn = None                   # 数据库连接

 12     __cursor = None                 # 数据库游标

 13     __database = None               # 用于临时村塾查询数据库

 14     __tableName = None              # 用于临时存储查询表名

 15     __fields = []                   # 用于临时存储查询表的字段列表

 16     __primaryKey_dict = {}          # 用于存储配置中的数据库中所有表的主键

 17

 18     def __init__(self, creator=pymysql, host="localhost", user=None, password="", database=None, port=3306, charset="utf8"):

 19         if host is None:

 20             raise Exception("Parameter [host] is None.")

 21         if user is None:

 22             raise Exception("Parameter [user] is None.")

 23         if password is None:

 24             raise Exception("Parameter [password] is None.")

 25         if database is None:

 26             raise Exception("Parameter [database] is None.")

 27         if port is None:

 28             raise Exception("Parameter [port] is None.")

 29         self.__config = dict({

 30             "creator" : creator, "charset":charset,

 31             "host":host, "port":port,

 32             "user":user, "password":password, "database":database

 33         })

 34         self.__conn = PooledDB.connect(**self.__config)

 35         self.__cursor = self.__conn.cursor()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值