本文和大家分享的主要是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()