Browse Source

fix: only link one table

master
xuxiaofei 4 years ago
parent
commit
e85712704b
  1. 60
      vislib/views/source.py
  2. 8
      vislib/views/views.py

60
vislib/views/source.py

@ -100,36 +100,38 @@ def sourceTables(request, sourceId):
json_data.append(table['fields']) json_data.append(table['fields'])
except: except:
source = SourceDataBase.objects.get(source_id=sourceId) print('no linked tables before')
source = serializers.serialize('json', [source])
source = json.loads(source)[0]['fields'] source = SourceDataBase.objects.get(source_id=sourceId)
password = source['password'].encode(('utf-8')) source = serializers.serialize('json', [source])
print(password) source = json.loads(source)[0]['fields']
host = source['host'] password = source['password'].encode(('utf-8'))
username = source['username'] host = source['host']
port = source['port'] username = source['username']
password = pc.decrypt(password) port = source['port']
database = source['database'] password = pc.decrypt(password)
print(password) database = source['database']
db=_mysql.connect( db=_mysql.connect(
host=host, host=host,
port=int(port), port=int(port),
user=username, user=username,
passwd=password, passwd=password,
db=database, db=database
charset='utf8' )
) db.query('show tables;')
db.query('show tables;') tables = db.store_result().fetch_row(maxrows=0, how=2)
tables = db.store_result().fetch_row(maxrows=0, how=2) db.close()
db.close() tables = list(tables)
json_data = list(tables[0].values()) for i, table in enumerate(tables):
for i, table in enumerate(json_data): tableName = list(table.values())[0].decode('utf-8')
json_data[i] = { if next((x for x in json_data if x['table'] == tableName), None):
'table': table.decode('utf-8'), print(tableName + ' linked')
else:
json_data.append({
'table': tableName,
'status': 0 'status': 0
} })
return JsonResponse({'code': 20000, 'message': 'success', 'data': json_data }) return JsonResponse({'code': 20000, 'message': 'success', 'data': json_data })

8
vislib/views/views.py

@ -1,21 +1,18 @@
import json import json
import uuid
from django.http import JsonResponse from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from MySQLdb import _mysql from MySQLdb import _mysql
from django.core import serializers from django.core import serializers
from vislib.models import SourceDataBase, SourceDataTable from vislib.models import SourceDataBase
from django.utils import timezone from django.utils import timezone
from common.utils.aes import pc from common.utils.aes import pc
import uuid
# Create your views here. # Create your views here.
def default_datetime(): def default_datetime():
now = timezone.now() now = timezone.now()
return now return now
def index(request):
return HttpResponse('hello python and django')
@csrf_exempt @csrf_exempt
def execSql(request): def execSql(request):
@ -38,7 +35,6 @@ def execSql(request):
user=username, user=username,
passwd=password, passwd=password,
db=database, db=database,
charset='utf8'
) )
db.query(sql) db.query(sql)
data = db.store_result().fetch_row(maxrows=0, how=2) data = db.store_result().fetch_row(maxrows=0, how=2)

Loading…
Cancel
Save