1.关于pymysql常用方法的封装,如下所示:
import pymysql
from common.read_config import ReadConfig
class HandleMysql:
def __init__(self):
self.RC=ReadConfig("../configs/pam_urls.ini")
#打开数据库连接
self.connector=pymysql.connect(
host=self.RC.get_str("MYSQL","host"),
port=self.RC.get_int("MYSQL","port"),
user=self.RC.get_str("MYSQL","user"),
password=self.RC.get_str("MYSQL","password"),
database=self.RC.get_str("MYSQL","database"), #要连接的数据库
charset=self.RC.get_str("MYSQL","charset") #设置数据库编码
)
self.cur=self.connector.cursor() #创建一个游标对象
self.cursor=self.connector.cursor(pymysql.cursors.DictCursor) #设置为字典形式返回数据,默认为元组
def create_table(self,sql):
self.cursor.execute(sql) #使用execute()方法执行sql语句
self.close()
def insert_table(self,sql):
try:
self.cur.execute(sql)
self.connector.commit() #提交游标的所有更新操作
except:
print("插入数据失败!")
self.connector.rollback() #回滚当前游标的所有操作
self.close()
def query_table(self,sql):
self.cur.execute(sql)
data1=self.cur.fetchall()
print("返回元组:{0}".format(data1))
self.cursor.execute(sql)
data2 = self.cursor.fetchall()
print("返回字典:{0}".format(data2))
self.close()
def update_table(self,sql):
try:
self.cur.execute(sql)
self.connector.commit() #提交游标的所有更新操作
except:
print("更新数据失败!")
self.connector.rollback() #回滚当前游标的所有操作
self.close()
def delete_table(self,sql):
try:
self.cur.execute(sql)
self.connector.commit() #提交游标的所有更新操作
except:
print("删除数据失败!")
self.connector.rollback() #回滚当前游标的所有操作
self.close()
def close(self):
self.cursor.close() #关闭游标对象
self.connector.close() #关闭数据库连接
2.关于pymongodb常用方法的封装,如下所示:
from pymongo import MongoClient
from common.read_config import ReadConfig
class HandleMongo:
def __init__(self):
self.RC=ReadConfig("..configs/pam_urls.ini")
self.host=self.RC.get_str("MONGO","host")
self.port = self.RC.get_int("MONGO", "port")
self.db = self.RC.get_str("MONGO", "db")
self.client=MongoClient(host=self.host,port=self.port)
self.usedb=self.client[self.db]
def db_co_info(self):
dbs=self.client.list_database_names()
print("共有数据库{0}个,分别是:{1}".format(len(dbs),dbs))
cos=self.usedb.list_collection_names()
print("数据库{0}下共有集合:{1}个,分别是:{2}".format(self.db,len(cos),cos))
def insert_collection(self,collection,documents):
self.usedb[collection].insert_many(documents)
def query_collection(self,collection,param=None):
dos=list(self.usedb[collection].find(param)) #param需要以字典的形式入参
print("该集合{0}下,共有文档{1}个".format(collection,len(dos)))
def delete_collection(self,collection,param=None):
self.usedb[collection].delete_many(param) #不传param时,默认该集合下的文档全部删除
if __name__=="__main__":
document01 = ({'title': 'mongo', 'click': 85, 'url':'http://www.mongo.com', 'tags':'nosql'})
document02 = ({'title': 'mysql', 'click': 90, 'url': 'http://www.mysql.com', 'tags': 'sql'})
document03 = ({'title': 'redis', 'click': 105, 'url': 'http://www.redis.com', 'tags': 'nosql'})
document04 = ({'title': 'oracle', 'click': 70, 'url': 'http://www.oracle.com', 'tags': 'sql'})
document05 = ({'title': 'sqlserver', 'click': 60, 'url': 'http://www.server.com', 'tags': 'sql'})
list1=[document01,document01,document01,document01,document01]
# HandleMongo().insert_collection('t_runoob01',list1)
# HandleMongo().query_collection('t_runoob01')
# HandleMongo().query_collection('t_runoob01',{'title':'mongo'}) #单个条件查询
# HandleMongo().query_collection('t_runoob01', {'title': 'mongo','':''}) # 多个条件查询
# HandleMongo().delete_collection('t_runoob01',{}) #删除全部文档


