data-manipulation/dm.py

86 lines
3.0 KiB
Python
Raw Normal View History

2017-03-12 15:02:21 +03:00
# -*- coding: utf-8 -*-
2017-03-15 15:58:26 +03:00
import json, pymysql
conn = pymysql.connect(
db='ats',
user='dba',
passwd='AlsprofilinE',
host='kis',
charset='utf8')
c = conn.cursor()
2017-03-13 16:50:33 +03:00
def createTables(tbl_list):
2017-03-15 15:58:26 +03:00
global tbl_descr_list, tbl_struct_list
2017-03-13 16:50:33 +03:00
i = 0
tbl_names_list = []
2017-03-14 17:01:30 +03:00
tbl_descr_list = []
2017-03-15 15:58:26 +03:00
tbl_struct_list = []
2017-03-14 17:01:30 +03:00
2017-03-13 16:50:33 +03:00
while i < len(tbl_list):
2017-03-14 17:01:30 +03:00
one_Table_descr = []
2017-03-15 15:58:26 +03:00
one_Table_struct = []
2017-03-13 16:50:33 +03:00
tbl_descr = tbl_list[i]["tableDescription"]
tbl_name = tbl_list[i]["tableName"]
field_list = tbl_list[i]["fieldList"][i].keys()
2017-03-14 17:01:30 +03:00
tbl_names_list.append([tbl_name, tbl_descr])
one_Table_descr.append(tbl_name)
2017-03-15 15:58:26 +03:00
one_Table_struct.append(tbl_name)
2017-03-13 16:50:33 +03:00
x = 0
# список всех полей таблицы
qwery_create = "CREATE TABLE " + tbl_name + " ("
index = ""
2017-03-14 17:01:30 +03:00
field_names_list = []
2017-03-15 15:58:26 +03:00
struct_fields_list = []
2017-03-13 16:50:33 +03:00
while x < len(tbl_list[i]["fieldList"]):
if tbl_list[i]["fieldList"][x]["autoIncrement"] == "yes":
auto_increment = " AUTO_INCREMENT, "
else:
auto_increment = ", "
qwery_create = qwery_create + tbl_list[i]["fieldList"][x]["fName"] + " " + \
tbl_list[i]["fieldList"][x]["fType"] + auto_increment
if tbl_list[i]["fieldList"][x]["index"] == "PRIMARY KEY":
index = "PRIMARY KEY(" + tbl_list[i]["fieldList"][x]["fName"] + ")"
2017-03-14 17:01:30 +03:00
field_names_list.append(tbl_list[i]["fieldList"][x]["fDescription"])
2017-03-15 15:58:26 +03:00
struct_fields_list.append(tbl_list[i]["fieldList"][x]["fName"])
2017-03-13 16:50:33 +03:00
x = x + 1
qwery_create = qwery_create + index + ");"
2017-03-15 15:58:26 +03:00
one_Table_struct.append(struct_fields_list)
2017-03-14 17:01:30 +03:00
one_Table_descr.append(field_names_list)
2017-03-13 16:50:33 +03:00
i = i + 1
2017-03-14 17:01:30 +03:00
tbl_descr_list.append(one_Table_descr)
2017-03-15 15:58:26 +03:00
tbl_struct_list.append(one_Table_struct)
2017-03-13 16:50:33 +03:00
return tbl_names_list
def initDBstructure():
2017-03-14 17:01:30 +03:00
global tbl_descr_list
2017-03-13 16:50:33 +03:00
table_list = open("tables.json", "r", encoding="utf-8")
data = json.load(table_list, encoding="utf-8")
tbl_list = data["tables"]
tbl_names_list = createTables(tbl_list)
2017-03-14 17:01:30 +03:00
2017-03-13 16:50:33 +03:00
return tbl_names_list
2017-03-15 15:58:26 +03:00
# выборка данных из заданной таблицы
def selectData(tbl):
global tbl_struct_list
#select docs.doc_name, docs.description, (select CONCAT(last_name, ' ', name, ' ', middle_name) AS user from users where id = docs.users_id) as user from docs
qwery = "SELECT "
for item in tbl_struct_list:
if item[0] == tbl:
for field in item[1]:
qwery = qwery + field + ","
qwery = qwery.rstrip(',') + " FROM " + tbl + " LIMIT 10000"
c.execute(qwery)
return c.fetchall()
2017-03-13 16:50:33 +03:00
2017-03-14 17:01:30 +03:00
# получаем на вход имя таблицы и возвращаем список заголовков полей
def getTablesStructure(tbl):
global tbl_descr_list
for item in tbl_descr_list:
if item[0] == tbl:
return item[1]
#initDBstructure()