安装
orator安装命令
pip install orator
简单使用
数据库的连接操作
config = {
'mysql': {
'driver': 'mysql',
'host': 'localhost',
'database': 'test_one',
'user': 'root',
'password': '123456',
'prefix': '',
'port': 3306
}
}
db = DatabaseManager(config=config).connection()
增加
增加一条信息记录
db.table('test').insert_get_id({
"published": "2020-11-05",
"source": "自定义",
"title": "测试标题",
"url": "https://www.baidu.com",
"sort": 56
})
插入多条信息记录
db.table('test').insert([
{"published": "2020-03-11", "source": "来源1", "title": "行测", "url": "https://sohu.com", "sort": 1},
{"published": "2020-03-12", "source": "来源2", "title": "申论", "url": "https://infoq.com", "sort": 2}
])
删除
删除满足条件的记录记录
# 删除title_sort字段为测试1的记录
self.db.table("test").where("title_tort", "=", "测试1").delete()
删除所有记录信息
# 删除所有记录
self.db.table("test").delete()
修改
修改一条信息记录
# 更新id为13的记录 将sort值修改为16
self.db.table("test").where('id', 13).update({"sort": 16})
查询
查询id为1的信息
# corpus为表名
result = db.table('corpus').where('id', '1').get()
print(result)
多条件查询 (从数据的第五行开始,查询五条数据)
result_one = db.table('corpus').offset(3).limit(5).get()
for num, data in enumerate(result_one):
print(num, data)
多条件限制查询
result_two = db.table('corpus').where('type', 'man').where_between('age', [15, 25]).get()
for every_data in result_two:
print(every_data)
其他复杂查询操作可参照文档
完整代码
限制条件:已存在test表,才能进行对应的操作
from loguru import logger
from orator import DatabaseManager,Model
config = {
'mysql': {
'driver': 'mysql',
'host': 'localhost',
'database': 'test_one',
'user': 'root',
'password': '123456',
'prefix': '',
'port': 3306
}
}
class OperateMysql(object):
def __init__(self):
self.config = config
self.db = DatabaseManager(config=self.config).connection()
def insert_data(self):
# 如果table有自增的id,使用insert_get_id 插入一条记录
self.db.table('test').insert_get_id({
"published": "2020-11-05",
"source": "自定义",
"title": "测试标题",
"url": "https://www.baidu.com",
"sort": 56
})
# 插入多条记录
self.db.table('test').insert([
{"published": "2020-03-11", "source": "来源1", "title": "行测", "url": "https://sohu.com", "sort": 1},
{"published": "2020-03-12", "source": "来源2", "title": "申论", "url": "https://infoq.com", "sort": 2}
])
def delete_data(self):
# 删除title_sort字段为测试1的记录
self.db.table("test").where("title_tort", "=", "测试1").delete()
# 删除sort的值为1的记录
self.db.table("test").where("sort", 1).delete()
# 删除所有记录
self.db.table("test").delete()
def update_data(self):
# 更新id为13的记录 将sort值修改为16
self.db.table("test").where('id', 13).update({"sort": 16})
# 将sort列的所有信息增加3
self.db.table("test").increment('sort', 3)
def search_data(self):
# 查询id为1的数据
result = self.db.table('corpus').where('id', '1').get()
print(result)
# 多条件查询 (从数据的第五行开始,查询五条数据)
result_one = self.db.table('corpus').offset(3).limit(5).get()
for num, data in enumerate(result_one):
print(num, data)
# 多条件限制查询
result_two = self.db.table('corpus').where('type', 'man').where_between('age', [15, 25]).get()
for every_data in result_two:
print(every_data)
if __name__ == '__main__':
om = OperateMysql()
om.update_data()