def modAlumnoCompleto(self, idAlumno, nombre, apellidos='NULL', dni='NULL', direccion='NULL', localidad='NULL', provincia='NULL', fecha_nacimiento='NULL', telefono='NULL', imagen='NULL'): ''' Modifica todos los atributos de un alumno dado su id al mismo tiempo. ''' #Info de seguimiento if v: print apiName print "Llamada a modAlumnoCompleto" print '\n' print locals() db = dbParams.conecta(); query="UPDATE Alumno SET" query=query+" nombre= "+'\''+nombre+'\'' query=query+" , apellidos= "+'\''+apellidos+'\'' if dni=='NULL': query=query+" , dni=NULL " else: query=query+" , dni= "+'\''+dni+'\'' query=query+" , direccion= "+'\''+direccion+'\'' query=query+" , localidad= "+'\''+localidad+'\'' query=query+" , provincia= "+'\''+provincia+'\'' if fecha_nacimiento=='NULL': query=query+" , fecha_nacimiento=NULL " else: query=query+" , fecha_nacimiento= "+'\''+fecha_nacimiento+'\'' query=query+" , telefono= "+'\''+telefono+'\'' query=query+" , url_imagen= "+'\''+imagen+'\'' #Codificamos el id porque es el único que no viene codificado desde la api para que no de problema al concatenar con la sentencia SQL query=query+" WHERE id_alumno="+dbParams.formatOutputText(idAlumno)+";" if v: print apiName print '\n'+query cursor = db.cursor() #Sacando los acentos........... mysql_query="SET NAMES 'utf8'" cursor.execute(mysql_query) #-----------------------------# salida ='' try: salida = cursor.execute(query); except MySQLdb.Error, e: # Get data from database try: print "MySQL Error [%d]: %s" % (e.args[0], e.args[1]) print "Error number: "+str(e.args[0]) salida=e.args[0] except IndexError: print "MySQL Error: %s" % str(e)
if salida==1: #Como se trata de toda la información al completo usaremos todos los campos de la clase alumno. #La api del mservicio envia estos datos en JSON sin comprobar nada alm = Alumno() alm.id=row[0] alm.nombre=row[1] alm.apellidos=row[2] alm.dni=row[3] alm.direccion=row[4] alm.localidad=row[5] alm.provincia=row[6] alm.fecha_nacimiento=row[7] alm.telefono=row[8] alm.urlImagen = row[9] print 'Nombre alumno: '+dbParams.formatOutputText(alm.nombre) return alm if salida==0: return 'Elemento no encontrado' @classmethod def modAlumno(self, idAlumno, campoACambiar, nuevoValor): """ Esta función permite cambiar cualquier atributo de un alumno, dado su id. Parámetros: campoACambiar: nombre del atributo que se quiere cambiar nuevoValor: nuevo valor que se quiere guardar en ese campo. """ db = dbParams.conecta(); #La conexión está clara. nuevoValor='\''+nuevoValor+'\''