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()