Foros del Web » Programando para Internet » Python »

duda con query usando wxpython

Estas en el tema de duda con query usando wxpython en el foro de Python en Foros del Web. Hola, me estoy preguntando porque es tan difícil hacer consultas o querys a base de datos usando wxpython lo que va de la tarde de ...
  #1 (permalink)  
Antiguo 18/10/2011, 09:03
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 13 años
Puntos: 0
Pregunta duda con query usando wxpython

Hola, me estoy preguntando porque es tan difícil hacer consultas o querys a base de datos usando wxpython lo que va de la tarde de ayer y noche y mañana de hoy me ha sacado chispas y aún sin poder hacer la consulta que deseo

es decir mi objetivo es hacer



y al darle a los botones "adelante", "atras", los datos se muevan en las cajas de texto.

entonces mi pregunta es ¿porque es tan difícil construir eso? si en comparación a visual foxpro es cuestión de 5 a 10 minutos hacer algo similar :(



mi base de datos es así

CREATE TABLE [empleado] (id integer NOT NULL,nombre_completo text,cedula integer,numero_telefono integer,dirección text)


Código Python:
Ver original
  1. '''
  2. Created on 17/10/2011
  3.  
  4. @author: Administrador
  5. '''
  6. import wx
  7. import sqlite3 as lite
  8.  
  9. class Macro(wx.Frame):
  10.     def __init__(self, parent, id, title):
  11.         wx.Frame.__init__(self, parent, id, title, size = (400,400))
  12.         panel = wx.Panel(self, -1)
  13.         #Nombres estaticos
  14.         primaria = wx.StaticText(panel, -1, "ID:", pos = (115,40))
  15.         nombre = wx.StaticText(panel, -1, "Nombre y apellido:", pos = (40,80))
  16.         cedula = wx.StaticText(panel, -1, "Cedula:", pos = (92,120))
  17.         numero = wx.StaticText(panel, -1, "Numero Telefonico:", pos = (35,160))
  18.         direccion = wx.StaticText(panel, -1, "Direccion:", pos = (82,200))
  19.         #cajas
  20.         self.cprimaria = wx.TextCtrl(panel, -1, "", pos = (150,40))
  21.         self.cnombre = wx.TextCtrl(panel, -1, "", pos = (150,80))
  22.         self.ccedula = wx.TextCtrl(panel, -1, "", pos = (150,120))
  23.         self.cnumero = wx.TextCtrl(panel, -1, "", pos = (150,160))
  24.         self.cdireccion = wx.TextCtrl(panel, -1, "", size = (100,50), pos = (150,200), style = wx.TE_MULTILINE)
  25.         #botones
  26.         nuevo = wx.Button(panel, -1, "nuevo", pos = (15,280), size = (50,30))
  27.         nuevo.Bind(wx.EVT_BUTTON, self.OnNuevo)
  28.         deshacer = wx.Button(panel, -1, "deshacer", pos = (68,280), size = (50,30))
  29.         deshacer.Bind(wx.EVT_BUTTON, self.OnDeshacer)
  30.         adelante = wx.Button(panel, -1, "adelante", pos = (121,280), size = (50,30))
  31.         adelante.Bind(wx.EVT_BUTTON, self.OnAdelante)
  32.         atras = wx.Button(panel, -1, "atras", pos = (175,280), size = (50,30))
  33.         eliminar = wx.Button(panel, -1, "eliminar", pos = (228,280), size = (50,30))
  34.         guardar = wx.Button(panel, -1, "guardar", pos = (282, 280), size = (50,30))
  35.         guardar.Bind(wx.EVT_BUTTON, self.OnGuardar)
  36.         cerrar = wx.Button(panel, -1, "cerrar", pos = (335,280), size = (50,30))
  37.         cerrar.Bind(wx.EVT_BUTTON, self.OnCerrar)
  38.         self.Centre()
  39.         self.Show()
  40.  
  41.     def OnAdelante(self, event):
  42.         try:
  43.             con = lite.connect('basededato.sqlite')
  44.             cur = con.cursor()
  45.             uno = self.cprimaria.GetValue()
  46.             dos = self.cnombre.GetValue()
  47.             tres = self.ccedula.GetValue()
  48.             cuatro = self.cnumero.GetValue()
  49.             cinco = self.cdireccion.GetValue()
  50.             cur.execute("Selec * from empleado where id = "1+"", (uno, dos, tres, cuatro, cinco))
  51.             con.commit()
  52.             cur.close()
  53.             con.close()
  54.  
  55.         except lite.Error, error:
  56.             dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error')
  57.             dlg.ShowModal()
  58.        
  59.        
  60.        
  61.        
  62.     def OnNuevo(self, event):
  63.         self.cprimaria.Clear()
  64.         self.cnombre.Clear()
  65.         self.ccedula.Clear()
  66.         self.cnumero.Clear()
  67.         self.cdireccion.Clear()    
  68.    
  69.        
  70.     def OnGuardar(self, event):
  71.         try:
  72.             con = lite.connect('basededato.sqlite')
  73.             cur = con.cursor()
  74.             uno = self.cprimaria.GetValue()
  75.             dos = self.cnombre.GetValue()
  76.             tres = self.ccedula.GetValue()
  77.             cuatro = self.cnumero.GetValue()
  78.             cinco = self.cdireccion.GetValue()
  79.             cur.execute("INSERT into empleado values(?, ?, ?, ?, ?)", (uno, dos, tres, cuatro, cinco))
  80.             con.commit()
  81.             cur.close()
  82.             con.close()
  83.             self.cprimaria.Clear()
  84.             self.cnombre.Clear()
  85.             self.ccedula.Clear()
  86.             self.cnumero.Clear()
  87.             self.cdireccion.Clear()
  88.             wx.MessageBox("Sus datos fueron guardados exitosamente", "Guardar", wx.OK | wx.ICON_INFORMATION)
  89.            
  90.         except lite.Error, error:
  91.             dlg = wx.MessageDialog(self, str(error), 'Ha ocurrido un error')
  92.             dlg.ShowModal()
  93.  
  94.            
  95.  
  96.        
  97.     def OnDeshacer(self, event):
  98.         self.cprimaria.Clear()
  99.         self.cnombre.Clear()
  100.         self.ccedula.Clear()
  101.         self.cnumero.Clear()
  102.         self.cdireccion.Clear()
  103.         wx.MessageBox("Se han borrado los campos, satisfactoriamente", "Deshacer", wx.OK | wx.ICON_INFORMATION)
  104.        
  105.        
  106.    
  107.     def OnCerrar(self, event):
  108.         self.Destroy()
  109.        
  110. app = wx.App()
  111. Macro(None, -1, "Formulario de empleado")
  112. app.MainLoop()
  #2 (permalink)  
Antiguo 18/10/2011, 09:21
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: duda con query usando wxpython

Cita:
Iniciado por bosterkill Ver Mensaje
Hola, me estoy preguntando porque es tan difícil hacer consultas o querys a base de datos usando wxpython
Es por que no haces consultas con wxpython, si no con python y otro modulo.

Cita:
Iniciado por bosterkill Ver Mensaje
entonces mi pregunta es ¿porque es tan difícil construir eso? si en comparación a visual foxpro es cuestión de 5 a 10 minutos hacer algo similar :(
Por que en visual foxpro, te genera todo ese código y no sabes en realidad que esta pasando, lo mas importante es que ese código generado se vuelve difícil de mantener.
  #3 (permalink)  
Antiguo 18/10/2011, 09:30
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 13 años
Puntos: 0
Respuesta: duda con query usando wxpython

Gracias razpeitia por la respuesta, me recomiendas algún modulo o framework para que esta tarea se me haga mas fácil? porfavor

saludos
  #4 (permalink)  
Antiguo 18/10/2011, 10:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: duda con query usando wxpython

Puedes usar algún ORM para la base de datos, así sera mas fácil hacer manipulaciones a la base de datos.

Pero para tu actual base de datos, creo que esta bien con SQLite3 a secas, a menos que tengas planeado hacer una base de datos muy grande.
  #5 (permalink)  
Antiguo 18/10/2011, 12:02
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 13 años
Puntos: 0
Respuesta: duda con query usando wxpython

;) comprendo la cosa es que no tengo la menor ídea de como hacer que las consultas encajen en cada textctrl
  #6 (permalink)  
Antiguo 19/10/2011, 08:26
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda con query usando wxpython

Quizás quieras probar Camelot
  #7 (permalink)  
Antiguo 20/10/2011, 09:06
Avatar de bosterkill  
Fecha de Ingreso: mayo-2011
Mensajes: 56
Antigüedad: 13 años
Puntos: 0
Respuesta: duda con query usando wxpython

Gracias AlvaroG aunque creo que camelot es para python 2.7

Etiquetas: query, wxpython, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:55.