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:
- Importar el módulo de conexión (en nuestro caso, utilizaremos MySQLdb)import MySQLdb
- Conectarse a la base de datosdb_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)
- Abrir un cursorcursor = db.cursor()
- Ejecutar una consultami_query = "SELECT campo FROM tabla WHERE campo='valor' ORDER BY campo"cursor.execute(mi_query)
- Si se está agregando, editando o eliminando un registro: hacer un commit a la base de datosdb.commit()
- Si se están leyendo datos: obtener todos los registros halladoscursor.fetchall()u obtener solo el primero:cursor.fetchone()
- Cerrar el cursor abiertocursor.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:
- db_conn.py (Capa de abstracción para la base de datos)
- pais.py (Modelo)
- pais_view.py (Vista)
- pais_controller.py (Controlador)
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 nuestrosinformación.
No hay comentarios:
Publicar un comentario