martes, 16 de septiembre de 2014

Cómo trabajar con bases de datos MySQL en Python

En el siguiente tutorial, nos avocaremos a un tema particular, el cual es prácticamente imposible evitar ser abarcado en el desarrollo de un sistema informático. Me refiero a lainteracción con bases de datos.
¡Comencemos!

Trabajando con bases de datos MySQL en Python

No abordaremos aquí, conocimientos básicos sobre MySQL, uso, instalación ni configuración. Sin perjuicio de lo anterior, haré una breve introducción.

Structured Query Language (SQL)

SQL es el lenguaje de consulta estructurado utilizado para el acceso a bases de datos relacionales. Si bien SQL como lenguaje, posee ciertos estándares, el lenguaje de consulta en sí, varía para cada base de datos en particular, siendo el tratado en este ejemplo, el correspondiente a MySQL.

MySQL

MySQL es un sistema de gestión de bases de datos relacionales, libre y que puede ser instalado en múltiples plataformas.
Para seguir el capítulo de esta guía, será necesario instalar MySQL. Para ello los invito a quienes no posean MySQL instalado, que visiten el sitio de descargas de MySQL y ladocumentación de MySQL.

MySQLdb

MySQLdb es una interfaz para trabajar con bases de datos MySQL desde Python. Elcapítulo Nº7 de esta guía, se ha indicado como lectura recomendada, el Manual oficial de MySQLdb el cual sugiero que se lea tras finalizar este capítulo.
Instalación de MySQLdb
Para interactuar desde Python con MySQL a través de MySQLdb, es necesario instalar dicho módulo. El nombre del paquete es python-mysqldb (por si desean instalarlo desde los repositorios), o sino, pueden descargar un tarball desdehttp://sourceforge.net/projects/mysql-python/. Allí mismo, encontrarán el archivoREADME con toda la información para instalarlo.

Introducción a bases de datos con Python

En el caso particular de Python, el acceso a bases de datos se encuentra definido a modo deestándar en las especificaciones de DB-API (por curiosidad, puedes visitar Python Database API specification).
Esto significa, que para utilizar cualquier base de datos, siempre se deberán seguir los mismos pasos:
  1. Importar el módulo de conexión (en nuestro caso, utilizaremos MySQLdb)
    import MySQLdb
  2. Conectarse a la base de datos

    db_host = 'localhost'
    usuario = 'root'
    clave = 'clave'
    base_de_datos = 'mi_basededatos'
    db = MySQLdb.connect(host=db_host, user=usuario, passwd=clave,
    db=base_de_datos)
  3. Abrir un cursor
    cursor = db.cursor()
  4. Ejecutar una consulta

    mi_query = "SELECT campo FROM tabla WHERE campo='valor' ORDER BY campo"
    cursor.execute(mi_query)
  5. Si se está agregando, editando o eliminando un registro: hacer un commit a la base de datos
    db.commit()
  6. Si se están leyendo datos: obtener todos los registros hallados
    cursor.fetchall()
    u obtener solo el primero:
    cursor.fetchone()
  7. Cerrar el cursor abierto
    cursor.close()

Manos a la obra!

Hecha esta introducción, estamos en condiciones de arrancar.

Crear la base de datos que utilizaremos

Lo primero que debemos hacer, es crear una nueva base de datos (o utilizar una existente) y ejecutar el query (consulta) que creará la tabla que utilizaremos.
Para ello, abriendo una terminal accedes a MySQL escribiendo:
mysql -u nombre_de_usuario_de_mysql -p contraseña_de_mysql
Lógicamente, modificarás nombre_de_usuario_de_mysql por tu nombre de usuario ycontraseña_de_mysql por tu clave. Al pulsar la tecla “enter”, verás mysql>
Una vez allí, si deseas crear una nueva base de datos, escribe:
create database nombre_de_la_nueva_base_de_datos;
Luego, indicamos a MySQL la base de datos que utilizaremos, escribiendo:
use nombre_de_tu_base_de_datos;
Habiendo indicado la base de datos a utilizar, ya estás en condiciones de ejecutar la consulta que creará la tabla. Para ejecutar la consulta, copia el siguiente query y luego pulsa la tecla enter:
CREATE TABLE IF NOT EXISTS paises (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
pais VARCHAR(125) NOT NULL,
) ENGINE=InnoDB;
abbr CHAR(2) NOT NULL

Descargar archivos

El ejemplo de este capítulo, corresponde a un ABM de países con arquitectura MVC (modelo-vista-controlador). El mismo, cuenta con los siguientes archivos:
Para ejecutar este ejemplo, llamar a pais_controller.py:

python pais_controller.py

Como podrán observar, este controlador es quien recibe las peticiones que hagamos, encargándose de realizar los cambios necesarios al modelo (la clase Pais), llamar a este modelo, y luego, enviar los datos necesarios a la vista, para que ésta, finalmente, sea quien nos muestre esos datos en pantalla.

Balance final de la guía

Así es que llegamos al final de esta guía.
Queda muchísimo por aprender y sobre todo, son abundantes los consejos que podríamos tomar para crecer profesionalmente. Creo, que quienes hayan seguido la guía paso a paso y participado activa o pasivamente de los comentarios de cada capítulo, habrán sabido comprender las bases necesarias para no ser “un programador más”.
Fuente:enlace

Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más 
información.

No hay comentarios:

Publicar un comentario

Entradas populares