[pyar] Python no me guarda en la base de datos?

Diego Uribe Gamez diego.uribe.gamez en gmail.com
Mie Dic 7 16:09:05 ART 2011


Hola de nuevo a todos.

Resulta que estoy recibiendo el dato externo de los datos de un Carro y
quiero almacenarlo en la base de datos de Django, el problema es que en
consola me recibe el dato pero no lo almacena? 1 me muestra el dato
entrante y al fina me muestra "aqui termina"

* No se que pasa y porque no guarda, no me muestra ningún error ni nada?

* No se si influye el hecho de que Django cuando ejecuta el modelo crea un
campo id en la base de datos, que si este campo no esta en la consulta no
guarda ya que es un campo not null y tiene auto increment?

* Con o sin (if __name__ == "__main__":) funciona igual, en que influye
esto?

-------------------------------------------------------------------------------------------------------------------------------------------------------------
# programa para procesar la procesar Cadenapura
import threading
# programa para procesar la procesar la base de datos
import MySQLdb

# Clase para porcesar la cadena
class Procesar(threading.Thread):

        # definir variable de entrada
        def __init__(self, Cadenapura, addr):
            threading.Thread.__init__(self)
            self.Cadenapura = Cadenapura

        def run(self):
            print "Carro: ", self.Cadenapura

            if __name__ == "__main__":

                # Solicitud para la base de datos
                sql = """INSERT INTO gprs_evento ( placa , marca , modelo ,
tipo , color , conductor )
                                                  VALUES
(self.Cadenapura[3],self.Cadenapura[2],self.Cadenapura[9],

self.Cadenapura[11],self.Cadenapura[13],self.Cadenapura[15])"""

                # Abrir conexión a la base de datos
                db = MySQLdb.Connect(host="localhost",
user="root",passwd="boltcranck",db="gprslmgs")
                cursor = db.cursor()

                # Ejecutar solicitud
                try :
                    cursor.execute(sql)
                    db.commit()
                except:
                    db.rollback()

                # Cerrar el cursor y la conexion a la base de datos
                cursor.close()
                db.close()

            print "aqui termina"


Modelo:
------------------------------------------------------------------------------------------
class Carro(models.Model):
    placa = models.CharField(max_length=7)
    marca = models.CharField(max_length=10)
    modelo = models.CharField(max_length=10)
    tipo = models.CharField(max_length=10)
    color = models.CharField(max_length=10)
    conductor = models.OneToOneField(Conductor)


Adicional me mandaron un código de ejemplo que adapte:
No entiendo porque cursor.execute(sql) es mas extenso aqui?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

import MySQLdb

sql = """INSERT INTO table ( value_1 , created_at , value_2 , text )
VALUES (%s,%s,%s,%s,%s)"""

if __name__ == "__main__":
	db = MySQLdb.Connect(host="127.0.0.1",
user="admin",passwd="",db="mysql_dbname")
	c = db.cursor()
	try :
		c.execute(sql, ('value', '0000-00-00 00:00:00', 'value 2', 'my etxt'))
		db.commit()
	except:
		db.rollback()

	db.close()



-- 
 *Diego Alonso Uribe Gamez*
------------------------------

*Desarrollador web*

Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>

Google+: http://gplus.to/diegoug
------------------------------
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111207/92ceba48/attachment.html>


More information about the pyar mailing list