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.

Comparte esta informaci贸n:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • LinkedIn
  • Technorati
  • TwitThis

Quiz谩 te interese :

Acerca del autor: tyoc

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