Siguiendo con las operaciones básicas que se pueden hacer con una base de datos, hoy haremos una modificación. Obviamente primero haremos una consulta sobre la base de datos para mostrar el registro a modificar antes de hacer la modificación y el programa preguntara al usuario si desea realizar la modificación para pedir los nuevos datos.

Explicado lo anterior vamos a proceder a escribir el script, con el gedit abrimos un nuevo archivo llamado modificacionalumno.py y una vez arrancado el gedit escribimos las siguientes líneas:

 

Ahora explicaremos línea a línea el script.

 

import MySQLdb <– importamos el modulo que nos servirá para hacer la conexión.

 

db=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”pasatiempos”,db=”conexion”) <– creamos una variable llamada db que sera un objeto con la propiedades del método connect del modulo recién importado y en donde los parametro de dicho método realizamos la conexión proporcionandole valores como el nombre del host, el usuario y password del servidor mysql al que nos queremos conectar y el nombre de la base de datos a donde nos queremos conectar.

 

cursor=db.cursor() <— a una nueva variable llamada cursor, le asignamos el método cursor del objeto que creamos en la línea anterior, dicho método cursor es el que nos ayuda a permanecer siempre apuntando a la base de datos seleccionada, fungue como socket y hace las operaciones básicas sobre los registros.

 

nombre=raw_input(“Escribe el nombre del alumno: “) <— pedimos el nombre del alumno que vamos a buscar y modificar, y dicho valor suministrado por el usuario lo guardamos en la variable nombre. Usamos la función raw_input porque el dato que vamos a guardar es una cadena.

 

cursor.execute(“select * from alumno where nombre=%s”, nombre) <– El método execute, es el que nos permite ejecutar las sentencias MySQL en los scripts de python, como argumento ponemos la cadena de las instrucción MySQL y si queremos que algún valor proveniente de una variable forme parte de esta cadena, lo sustituimos con un %s, el segundo argumento será la variable cuyo valor tomara parte de la cadena, esta variable puede ser sencilla o un vector. En este caso la cadena de instrucción es una consulta, que busca el nombre suministrado anteriormente por el usuario en la tabla de alumno.

 

resultado=cursor.fetchall() <— El resultado de la consulta lo asignamos a una variable llamada resultado.

 

 

print “Datos del alumno”

for registro in resultado:

print “Nombre: “,registro[0],”Carrera: “,registro[1],”Grado: “,registro[2]

 

En estas líneas imprimimos el resultado de la consulta, es decir la coincidencia que se encontró del nombre buscado, obviamente si el nombre del alumno no esta en la base de datos, la consulta aparecerá vacía únicamente veremos los rótulos. La variable resultado que tiene el resultado de la consultase puede recorrer con un ciclo for-in asignando cada tupla que la compone en cada vuelta a la variable registro, que dentro del ciclo será impresa columna a columna.

 

respuesta=raw_input(“Desea modificar el registro mostrado s/n: “) <– En esta parte es donde se cuestiona al usuario si desea modificar el registro que se le esta mostrando. La respuesta se guarda en una variable de nombre respuesta.

 

if respuesta==”s”:

nombre2=raw_input(“Escribe el nuevo nombre del alumno: “)

carrera2=raw_input(“Escribe la nueva carrera del alumno: “)

grado2=raw_input(“Escribe el nuevo grado del alumno : “)

values=(nombre2, carrera2, grado2)

cursor.execute(“update alumno set nombre=%s, carrera=%s, grado=%s”, values)

 

Paso seguido hacemos una bifurcación con un if, en caso de que el usuario haya elegido que si desea modificar el registro, se piden nuevamente los datos del alumno, almacenándolos en las variables nombre2, carrera2 y grado2. Se crea un vector con estos valores llamado values. Y se vuelve a utilizar el método execute, pero ahora la cadena MySQL será la propia de una modificación (update) y el parámetro donde vienen los valores a sustituir dentro de la cadena será el vector de más reciente creación.

 

El código es sencillo, omitimos usar elementos gráficos, validaciones y demás instrucciones que impidieran la ubicación de las lineas que hacen la conexión y operaciones de Python con la base de datos en MySQL, el enriquecimiento ya corre a cuenta de cada uno. Espero que les sea de utilidad.

 

SaluLINUX!!

 

Powered By DT Author Box

Written by chris

Conexión Python-MySQL Modificación.

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: