数据存储开发流程
创建client
创建client的代码示例如下:
from pdr_python_sdk.storage import *
c = connect()
指定scheme,host,port,例如使用http协议,host为127.0.0.1,端口号为11001,如下:
from pdr_python_sdk.storage import *
c = connect(scheme="http",host="127.0.0.1",port="11001")
对数据表进行操作
- 获取操作数据表的对象
如果app名称为 app1,则
storageTable = c.storage("app1")
- 创建数据表
创建数据表时,会内置一个id自增列。
需要指定表名称,表的shcema。例如这里创建的表名称为 table1,schema为 des TEXT
storageTable.create(data='{"name":"tabel1", "schema":"title TEXT, des TEXT"}')
- 获取数据表
获取所有的数据表
storageTable.get_tables()
返回结果示例
{
'total': 1,
'collections': [
{'app': 'app1', 'scope': 'GLOBAL', 'app_table': 'tabel1', 'table_schema': 'title TEXT, des TEXT'}
]
}
- 删除数据表
删除指定表名称的数据表。例如这里的表名称为 table1
storageTable.delete_table("table1")
返回结果示例
{}
对数据进行操作
- 获取操作数据的对象
操作数据表 table1 的数据,则获取方式如下:
storageData = storageTable.data("table1")
- 插入数据
storageData.insert({"fields": "title,des", "values": "\"title1\",\"sdk_test1\""})
返回结果示例:
{}
- 获取数据
获取所有数据:
storageData.query()
返回结果示例:
{
'total': 1,
'data': [
{'id': 1, 'title': 'title1', 'des': 'sdk_test1'}
]
}
获取指定页面指定条数数据。例如获取第一页,每页2行数据。
storageData.query(pageNo=1, pageSize=2)
返回结果示例:
{
'total': 1,
'data': [
{'id': 1, 'title': 'title1', 'des': 'sdk_test1'}
]
}
获取指定query语句的数据。例如获取des列为sdk_test1的数据
storageData.query(query="des=\"sdk_test1\"")
返回结果示例:
{
'total': 1,
'data': [
{'id': 1, 'title': 'title1', 'des': 'sdk_test1'}
]
}
- 根据id获取数据
storageData.query_by_id(1)
返回结果示例:
{'id': 1, 'des': 'sdk_test1'}
- 根据id更新数据
storageData.update(1, '{"value": "des=\\"sdk_new\\""}')
返回结果示例:
{}
- 根据query语句更新数据
storageData.updateByQuery('{"query": "title=\\"title1\\"", "value": "des=\\"sdk_test_new\\""}')
返回结果示例:
{}
- 根据id删除数据
storageData.delete_by_id(1)
返回结果示例:
{}
- 删除数据
根据query删除数据
storageData.delete(query="title=\"title1\"")
{}
清空数据表里的数据
storageData.delete()
返回结果示例:
{}
- 批量插入数据
storageData.batch_save(records={"fields": "des", "values": ["\"sdk_test2\"","\"sdk_test3\""]})
返回结果示例:
{}
示例
如果存在app名称为 app_name,按以下示例进行操作
from pdr_python_sdk.storage import *
if __name__ == "__main__":
c = connect()
storageTable = c.storage("app_name")
# 创建数据表 sdk_new1
storageTable.create(data='{"name":"sdk_new1", "schema":"des TEXT"}')
# 获取 app_name 可以操作的所有数据表
response = storageTable.get_tables()
print("get_tables response=", str(response))
# 删除 app_name 中的数据表 sdk_new1
response = storageTable.delete_table("sdk_new1")
print("delete_table response=", str(response)
# 删除 app_name 中的数据表 sdk_new2
storageTable.delete_table("sdk_new2")
# 创建数据表 sdk_new2
storageTable.create(data='{"name":"sdk_new2", "schema":"title TEXT, des TEXT"}')
response = storageTable.get_tables()
# 获取 app_name 中数据表 sdk_new2 的所有数据
storageTableData = storageTable.data("sdk_new2")
# 插入数据到 app_name 数据表 sdk_new2 中
response = storageTableData.insert({"fields": "title,des", "values": "\"lihong\",\"sdk_test\""})
print("insert sdk_new2 response=", str(response))
# 从 app_name 数据表 sdk_new2 中查询 title="lihong" 的数据
response = storageTableData.query(query="title=\"lihong\"")
print("query sdk_new8 response=", str(response))
# 更新 app_name 数据表 sdk_new2 中 title="lihong" 数据的字段 des="sdk_test_new"
response = storageTableData.updateByQuery('{"query": "title=\\"lihong\\"", "value": "des=\\"sdk_test_new\\""}')
print("updateByQuery sdk_new8 response=", str(response))
# 删除 app_name 数据表 sdk_new2 中 title="lihong" 的数据
response = storageTableData.delete(query="title=\"lihong\"")
print("delete query sdk_new2 response=", str(response))
# 创建数据表 sdk_new3
storageTable.create(data='{"name":"sdk_new3", "schema":"des TEXT"}')
storageTableData = storageTable.data("sdk_new3")
# 删除 app_name 数据表 sdk_new3 中所有数据
response = storageTableData.delete()
print("delete response=", str(response))
# 插入数据
response = storageTableData.insert({"fields": "des", "values": "\"sdk_test\""})
print("insert response=", str(response))
# 更新 app_name 数据表 sdk_new3 中 id=1 的数据
response = storageTableData.update(1, '{"value": "des=\\"sdk_new\\""}')
print("update response=", str(response))
# 查看 app_name 数据表 sdk_new3 中 id=1 的数据
response = storageTableData.query_by_id(1)
# 删除 app_name 数据表 sdk_new3 中 id=1 的数据,等同于 storageTableData.delete_by_id(1)
response = storageTableData.delete(query="id=1")
print("delete by query response=", str(response))
# 批量往 app_name 数据表 sdk_new3 中插入数据
response = storageTableData.batch_save(records={"fields": "des", "values": ["\"sdk_test1\"","\"sdk_test2\"","\"sdk_test3\""]})
# 查询 app_name 数据表 sdk_new3 中第一页,页面显示2条数据
response = storageTableData.query(pageNo=1, pageSize=2)
print("response=", str(response))
# 查看 pp_name 数据表 sdk_new3 中所有数据
response = storageTableData.query()
print("batch_save response=", str(response))
文档反馈
(如有产品使用问题,请 提交工单)