MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / get_keys_bytable

Method get_keys_bytable

class/databaseModel/sqliteModel.py:468–504  ·  view source on GitHub ↗

@name 获取表字段 @param args['path'] 数据库路径 @param args['table'] 表名 @return list

(self,args)

Source from the content-addressed store, hash-verified

466 return public.returnMsg(True,'删除成功,共删除数据 {} 条.'.format(count)) #返回成功信息
467
468 def get_keys_bytable(self,args):
469 """
470 @name 获取表字段
471 @param args['path'] 数据库路径
472 @param args['table'] 表名
473 @return list
474 """
475
476 path = args.path
477 table = args.table
478
479 if not os.path.exists(path):
480 return public.returnMsg(False,'数据库不存在.')
481
482 data = self.get_database_list()
483 if not path in data:
484 return public.returnMsg(False,'数据库不存在.')
485
486 db = self.get_db_info(path)
487 if not db:
488 return public.returnMsg(False,'数据库文件错误.')
489
490 result = []
491 sql = db['sql'].table(table)
492 slist = sql.query('PRAGMA table_info({})'.format(table))
493
494 if not slist:
495 return public.returnMsg(False, '无法获取表信息或表不存在。')
496
497 for val in slist:
498 if len(val) >= 6:
499 result.append({'name': val[1], 'type': val[2].lower(), 'pk': val[5]})
500 else:
501 print("数据格式不符合预期,表可能不含有足够的字段信息。")
502 continue
503
504 return result
505
506
507 def __get_table_pk(self,sql,table):

Callers

nothing calls this directly

Calls 8

get_database_listMethod · 0.95
get_db_infoMethod · 0.95
returnMsgMethod · 0.80
existsMethod · 0.45
tableMethod · 0.45
queryMethod · 0.45
formatMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected