def connect(): """ connects to the database; """ try: conn = psycopg2.connect( "dbname=base user='******' host='localhost' password='******'") conn.autocommit = True except: logger.log("Unable to connect to the database") return conn
def getObjectById(objId): """ gets object from the database; :- objId: type = str; :- return: type = tuple, info = (bool, result dict); """ logger.log('Searching for object %s in the database...' % objId) # init connection to the database conn = connect() # define cursor cur = conn.cursor() try: cur.execute("select * from graph.nodes where id = '%s'" % objId) dbAnswer = cur.fetchall() cur.close() conn.close() logger.log('Object has %s been found.' % objId) except: logger.log('Failed to find object %s' % objId, logType='error') return (False, None) # converting result to dict coulumns = ['id', 'name', 'type', 'initial', 'final', 'way'] result = [] for row in dbAnswer: result.append(dict(zip(coulumns, row))) return (True, result)
def uploadSuccess(request, model_pk, weight_pk): model_file = get_object_or_404(ModelFile, pk=model_pk) weight_file = get_object_or_404(WeightFile, pk=weight_pk) context = { 'model_file': model_file, 'weight_file': weight_file, } err = kl.load(str(model_file.model_file), str(weight_file.weight_file)) #Some Errors in this code # err value is 1 when weight file fail to load also. if err == 1: log(request.user, "Model file : {0} fail to load".format(str(model_file.model_file)), important=True) messages.add_message(request, messages.ERROR, 'Model file fail to load') return HttpResponseRedirect(reverse('upload')) elif err == 2: log(request.user, "Weight file : {0} fail to load".format( str(weight_file.weight_file)), important=True) messages.add_message(request, messages.ERROR, 'Weight file fail to load') return HttpResponseRedirect(reverse('upload')) else: log( request.user, "Model file : {0}, Weight file : {1} successfully loaded".format( str(model_file.model_file), str(weight_file.weight_file))) return render(request, 'upload_success.html', context)
def addNode(nodeId, name, initial, final): """ adds node to the database; :- nodeId: type=str; :- name: type=str; :- initial: type=list; :- final: type=list; :- return: type=bool; """ logger.log('Adding node %s to the database...' % nodeId) objType = 'node' # init connection to the database conn = connect() # define cursor cur = conn.cursor() # change format for postgres syntax initial = str(initial).replace("'", '') initial = str(initial)[1:-1] final = str(final).replace("'", '') final = str(final)[1:-1] try: cur.execute( "insert into graph.nodes values('%s','%s','%s','{%s}','{%s}',%s)" % (nodeId, name, objType, initial, final, 'default')) cur.close() conn.close() logger.log('Node %s has been successfully added to the database.' % nodeId) return True except: logger.log('Node %s addition to the database has failed.' % nodeId, logType='error') return False
def uploadFile(request): storage = messages.get_messages(request) storage.used = True if request.method == 'POST': weight_file = WeightFile() model_file = ModelFile() weight_file.uploader = request.user model_file.uploader = request.user weight_file_form = WeightFileUploadForm(request.POST, request.FILES, instance=weight_file) model_file_form = ModelFileUploadForm(request.POST, request.FILES, instance=model_file) if weight_file_form.is_valid() and model_file_form.is_valid(): weight_file_form.save() model_file_form.save() model_file_objects = ModelFile.objects.exclude(pk=model_file.pk) weight_file_objects = WeightFile.objects.exclude(pk=weight_file.pk) print("Uploader : ", str(weight_file.uploader)) log( weight_file.uploader, "Weight file : {0} successfully uploaded".format( weight_file.weight_file)) log( model_file.uploader, "Model file : {0} successfully uploaded".format( model_file.model_file)) for model_files in model_file_objects: log( weight_file.uploader, "Weight file id : {0}(File : {1}) Deleted.".format( str(model_files.id), model_files.model_file)) model_files.delete() for weight_files in weight_file_objects: log( weight_file.uploader, "Weight file id : {0}(File : {1}) Deleted.".format( str(weight_files.id), weight_files.weight_file)) weight_files.delete() messages.add_message(request, messages.SUCCESS, 'Upload Success!') return HttpResponseRedirect( reverse('upload-success', args=(str(model_file.pk), str(weight_file.pk)))) elif not model_file_form.is_valid() and not weight_file_form.is_valid( ): messages.add_message(request, messages.ERROR, 'Weight File and Model File Upload Failed') log(weight_file.uploader, 'Weight file and Model file Upload Failed', important=True) elif not model_file_form.is_valid(): messages.add_message(request, messages.ERROR, 'Model file Upload Failed') log(weight_file.uploader, 'Model file Upload Failed', important=True) elif not weight_file_form.is_valid(): messages.add_message(request, messages.ERROR, 'Weight file Upload Failed') log(weight_file.uploader, 'Weight file Upload Failed', important=True) weight_form = WeightFileUploadForm() model_form = ModelFileUploadForm() context = { 'weight_form': weight_form, 'model_form': model_form, } return render(request, 'weight_upload.html', context)