Download Introducción al Manejo de bases de datos MySQL en Python

Document related concepts
no text concepts found
Transcript
Introducción al Manejo de
bases de datos MySQL en
Python
By: Blozzter
Chile, 2011.
Creando la Base de datos a tratar.
Comenzaremos creando la base de datos MySQL en la cual trabajaremos,
vamos al cliente de MySQL y lo hacemos de modo manual escribiendo
create database ejemplo; Y luego vemos las bases de datos para
asegurarnos que “ejemplo” fue creada exitosamente con el comando show
databases
Seleccionamos la base de datos en la que vamos a trabajar:
Y procedemos a crear las tablas con sus respectivas columnas.
Para este ejemplo crearé una tabla llamada “usuarios” que contendrá 2
columnas que serán “nombre” y “clave”; así:
Ahora insertaremos algunos datos a la base de datos del siguiente modo:
Como vemos, se ha realizado la inserción de 3 usuarios en la tabla
“usuarios”, cuyos nombres son: pepe, maria, luis; y las claves: soydios,
fashionforever, superman; respectivamente.
Veamos cómo va quedando la tabla haciendo una petición que devolverá
todo su contenido:
Hasta ahora hemos visto como insertar y ver los datos de tablas, a
continuación pasaremos a la modificación de datos, que en sql se hace con
el comando update
Vemos cómo va quedando la tabla usuarios:
Como se aprecia, hemos modificado la clave del usuario pepe de “soydios”
a “perdedor”.
Y lo último en cuanto al manejo básico de bases de datos, como borrar una
fila:
Hemos borrado a la usuario “maria” de la tabla, lo comprobamos:
Implementando lo aprendido en Python
El intérprete de Python no cuenta con el módulo que permite interactuar
con bases de datos MySQL, así que debemos instalarlo por separado. En mi
caso tengo la versión de Python 2.7, por lo que me tuve que bajar1.
Veremos cómo implementar en Python las operaciones básicas
anteriormente descritas, es decir, agregar, modificar y eliminar elementos
de una base de datos.
Para continuar nos guiaremos con un código que hice que permite hacer las
operaciones descritas.
Analicemos el código por parte:
Importamos dos módulos, el primero para trabajar con bases de datos
MySQL y el segundo el módulo del sistema que lo utilizaremos para cerrar
el programa en caso de no poder conectarnos a la DB. Luego definimos las
variables que necesitamos para la conexión.
1
http://soemin.googlecode.com/files/MySQL-python-1.2.3c1.win32-py2.7.exe
Intentamos establecer la conexión con la función Connect y creamos un
cursor que usaremos para luego hacer las consultas sql’s. En caso contrario
damos el aviso de error y procedemos a terminar la ejecución del programa.
Ahora creamos las funciones que se encargaran de hacer las operaciones.
Comenzamos con la función para mostrar los usuarios:
Definimos la operación y la almacenamos en la variable “sql”, la que a
continuación la ejecutamos con la propiedad “execute” del cursor creado en
el programa principal. Con “fetchall” lo hacemos legible y posteriormente
le damos algún formato para presentarlo al usuario.
Pasamos a la función que agrega usuarios, la cual debe recibir el nombre
del usuario y la clave:
Lo mismo que antes, guardamos la consulta que queremos hacen en la
variable “var” y luego la ejecutamos haciendo alusión al cursor creado en
el programa principal con la función “execute”.
La función que borra usuarios debe recibe el nombre del usuario que se
desea borrar:
Y el mismo procedimiento anterior.
Diseñamos un menú simple que será con el que el usuario interactuará:
Asignamos un valor boleano para controlar el flujo del programa:
Y luego que tenemos las funciones, solo queda implementarlas:
Mientras no se decida terminar el programa mostraremos el menú y
pediremos una opción, dependiendo de esa opción solicitaremos los datos
que necesarios y llamamos a la función indicada.
Este es un ejemplo sencillo que sirve de introducción al manejo de bases de
datos desde Python, y no está diseñado para cuando el usuario introduce
valores “equivocados”, ya no hacemos validación de datos. Pero funcionará
bien si encontramos un súper-usuario que jamás se equivocará 
He subido el código a Pastebin.com para que se pueda copiar y probar con
mayor facilidad.
http://pastebin.com/8jNm73vc
# end
Sitios recomendados:
[+ ]http://forum.mitm.cl/
[+] https://foro.undersecurity.net/
[+] http://www.underc0de.org/foro
[+] http://secureless.org/