[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