Python + PyGtk + SQLAlchemy en SQL

octubre 28 2009Se el primero en comentar

Guardado en : Programación

SQLAlchemy es un ORM para python, con el cual se puede hacer el mapeo de tablas a objetos sin que el programador intervega de manera profunda o también se puede usar directamente SQL sin haber creado estas relaciones ORM.

Objetivo

Desarrollar una aplicación CRUD que permita crear, leer, actualizar y remover.

Desarrollo

En este caso se creará una interfaz algo complicada que desplegará en un treeview el contenido de la base de datos, permitirá crear nuevos elementos, actualizarlos y borrar uno seleccionado, la intefaz se como

Pantallazo-exmysql.py

También se necesita crear la base de datos, en este caso sólo contiene la clave primaria que se autoincremente y como cadenas el nombre, apellido paterno y apellido materno, hay un script sql que se adjunto al código.

Usando SQLAlchemy

La siguiente parte de código es aquella de este programa que se encarga de comunicarse con la base de datos con la ayuda de SQLAlchemy, notar que no se ha usado la parte ORM de SQLAlchemy y por eso mismo sólo le hacemos un import a “create_engine” ya que para este caso no necesitamos más funcionalidad al respecto.

from sqlalchemy import create_engine
class Modelos():
  def loadPersonasFromDB(self):
    c = create_engine("mysql://root:root@localhost/basesimple", echo = True)
    resproxy = c.execute("SELECT * from base")
    rows = [r for r in resproxy]
    return rows
  def newPersona(self, nombre, apepat, apemat):
    cmd = """INSERT INTO `basesimple`.`base`
(`nombre`, `apepat`, `apemat`)
VALUES('%s', '%s', '%s');"""%(nombre, apepat, apemat)
    c = create_engine("mysql://root:root@localhost/basesimple", echo = True)
    resproxy = c.execute(cmd)
    idinserted = resproxy.lastrowid
    return idinserted
 
  def updatePersona(self, idx, nombre, apepat, apemat):
    cmd = """UPDATE base SET
nombre = '%s',
apepat = '%s',
apemat = '%s'
WHERE idbase = %d """%(nombre, apepat, apemat, idx)
    c = create_engine("mysql://root:root@localhost/basesimple", echo = True)
    resproxy = c.execute(cmd)
 
  def deletePersona(self, idx):
    cmd = "delete from `basesimple`.`base` where idbase = %d"%idx
    c = create_engine("mysql://root:root@localhost/basesimple", echo = True)
    resproxy = c.execute(cmd)

El código con los archivos necesarios lo puedes descargar aquí. Se debe de notar que el usuario y password que se usan es  “root” en ambos casos.

Quizá te interese :

  • En esta ocación vamos a mostrar como conectar java con mysql. Para este tutorial utilizamos: ...

  • En php es muy fácil realizar consultas para tener acceso a las bases de datos de MySql, para ell ...

  • Se resume una forma de utilizar la interface estándar de python llamada Tkinter. Se construye un ...

Acerca del autor:

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

¿Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de cómo podemos mejorarlo para ti, ¡Por favor háznoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio útil y amigable y esperamos que disfrutes tu tiempo aquí.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose

-->