Curso de Python XII

python_header

En la anterior entrada empezamos a ver el manejo de bases de datos con Python. Vimos como consultar e insertar datos con SQLite y en esta lección haremos lo mismo pero con el módulo PyMySQL. Recordemos que SQLite solo permite acceso local y solo puede hacerlo un usuario, mientras que MySQL (o MariaDB en la actualidad) permite acceso remoto y es multiusuario.

El módulo sqlite3 venía integrado en el interprete python pero pymysql no, así que aprovecharemos para terminar la lección 9 y aprenderemos a instalar los módulos que vayamos necesitando.

Instalación del módulo PyMySQL

Con la instalación de Python viene una herramienta de instalación de paquetes (módulos) llamada pip. Ésta permite que abriendo una terminal (o cmd en windows) y poniendo la sintaxis pip install <paquete> se lo descargue e instale automáticamente como veremos en las siguientes dos capturas

python1 python2

Para comprobar que el PyMySQL ha sido instalado, abrimos python y probamos a importar el módulo. Si no da error es que está correctamente instalado

python3

Hecha la instalación, ya tenemos el módulo listo para su uso.

MySQL en Python 3 con PyMySQL

Al contrario que SQLite, MySQL necesita un servidor que aloje la base de datos. Para ello recomiendo instalar la suite de herramientas XAMPP. No es parte de este curso cubrir la instalación de XAMPP pero siguiendo las capturas no habrá pérdida. Nos saldrán algunos avisos del Firewall que debemos aceptar.

Nota: El archivo de instalación de la página oficial de XAMPP parece estar mal nombrado, por lo que si tu windows no detecta que tipo de archivo es añádele la extensión .exe para que sea ejecutable y lo abrirá sin problemas.

Seleccionamos lo básico que vamos a necesitar

python4 python5

Picamos en Start para iniciar los servicios de Apache y MySQL. Apache montará phpmyadmin, una potente herramienta del estilo de SQLite Manager para manejar de manera gráfica nuestra base de datos. Para abrir phpmyadmin lo hacemos con el botón Admin de MySQL

python6 python8

El uso de PhpMyAdmin requiere algo de práctica así que no dudes en ir probando a crear una base de datos con sus tablas. Si te parece demasiado complicado no dudes en mirar algún tutorial de los muchos que hay en internet.

Una vez instalado todo lo necesario para usar MySQL y configurada la base de datos, pasemos a escribir el código necesario para hacer una consulta. En este ejemplo vemos que tenemos que indicarle la dirección IP, usuario, password y la base de datos que hemos creado. Esto se debe a que la base de datos puede estar en un servidor externo y al ser multiusuario debemos decir quienes somos. El resto es prácticamente igual que en SQLite

python9

python10

Veamos ahora una inserción. Si nos fijamos en la sentencia SQL, con éste módulo debemos indicar el nombre de la base de datos justo antes de indicar la tabla (empresa.usuarios) y añadir el commit() de la línea 17 para que se realice la inserción

python17python14si volvemos a ejecutar la consulta obtendremos ahora las dos filas

python15

Usando los dos patrones ya podemos insertar y consultar los datos. Veamos un ejemplo de inserción mediante variables recogidas al usuario. Hay que tener en cuenta en la sentencia SQL (línea 13) que para poder escapar(salir) del string tenemos que cerrar el string, concatenar(+) y volver a abrir el string. Ejemplo:

sql = “INSERT INTO empresa.usuarios (nombre) VALUES (‘ ” + variable + ” ‘)”

python16 python17

y consultando phpmyadmin vemos que se ha insertado los campos

python18

ahora vamos a ver un ejemplo de como haríamos para consultar e imprimir solo correos y contraseñas

python21 python22

No está de más decir que la contraseña de la base de datos debe ser personalizada y nunca ‘root’ como he puesto en el ejemplo.

Con esta lección terminamos el acceso a base de datos tanto a SQLite como a MySQL con python3.

Un salu2!

Curso de Python I
Curso de Python II
Curso de Python III
Curso de Python IV
Curso de Python V
Curso de Python VI
Curso de Python VII
Curso de Python VIII
Curso de Python IX
Curso de Python X
Curso de Python XI
Curso de Python XII
Curso de Python XIII
Curso de Python XIV