Foros del Web » Programando para Internet » Python »

[Ayuda]Insertar desde Python un date en Mysql

Estas en el tema de [Ayuda]Insertar desde Python un date en Mysql en el foro de Python en Foros del Web. Hola chicos queria saber como es insertar un date desde python para guardarlo en mysql @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original sql = 'Select * ...
  #1 (permalink)  
Antiguo 06/12/2014, 16:53
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 5 años, 11 meses
Puntos: 0
[Ayuda]Insertar desde Python un date en Mysql

Hola chicos queria saber como es insertar un date desde python para guardarlo en mysql

Código Python:
Ver original
  1. sql = 'Select * from alumno'
  2.     sql = "INSERT INTO alumno (dni,nombre,apellido,fecha_nacimiento,lugar_nacimiento,domicilio,e-mail) VALUES ( '%d','%s','%s')" % \
  3.     (dni,nombre,apellido)

Yo se que faltan poner mas cosas,pero date en formato date como lo inserto ahi.
Gracias
  #2 (permalink)  
Antiguo 06/12/2014, 21:29
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 10 años, 5 meses
Puntos: 24
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

Hola, asi ??

Código Python:
Ver original
  1. import time
  2. fecha = time.strftime("%y/%m/%d")
  3.  
  4. sql = "INSERT INTO fechas ( fecha ) VALUES ( '%s')" % fecha
  #3 (permalink)  
Antiguo 07/12/2014, 00:36
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 15 años, 7 meses
Puntos: 1360
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

No chavos, nunca formaten cadenas con parámetros. Eso es la entrada a sql injection. Para eso la api de la base de datos se encarga de hacer ese procesamiento.

Estoy asumiendo que usas la librería mysql.

Así sería un script completo para insert. Si te fijas la fecha lo paso tal cual un objeto date, el api de mysql se encarga de pasarlo a un formato adecuado. Y si te fijas no formateo una cadena con los parámetros recibidos.

Código Python:
Ver original
  1. import datetime
  2. import mysql.connector
  3.  
  4. connection = mysql.connector.connect(user='user', password='password', database='database')
  5. cursor = connection.cursor()
  6.  
  7. dni = 10
  8. nombre = 'George'
  9. apellido = 'Lopez'
  10. fecha_nacimiento = datetime.date(1961, 4, 23)
  11. lugar_nacimiento = 'Mission Hills, California, Estados Unidos'
  12. domicilio = 'California'
  13.  
  14. sql = """
  15.    INSERT INTO alumno
  16.    (
  17.        dni,
  18.        nombre,
  19.        apellido,
  20.        fecha_nacimiento,
  21.        lugar_nacimiento,
  22.        domicilio,
  23.        e-mail
  24.    )
  25.    VALUES (
  26.        %s,
  27.        %s,
  28.        %s,
  29.        %s,
  30.        %s,
  31.        %s,
  32.        %s,
  33.        )
  34.    """
  35. datos = (dni, nombre, apellido, fecha_nacimiento, lugar_nacimiento, domicilio, e_mail)
  36. cursor.execute(sql, datos)
  37. cursor.commit()
  38.  
  39. cursor.close()
  40. connection.close()

PD: El commit es muy importante.
  #4 (permalink)  
Antiguo 07/12/2014, 11:44
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 5 años, 11 meses
Puntos: 0
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

Muchísimas gracias,pero me queda una gran duda,si ingreso por teclado,osea estoy ingresando los datos por consola con raw_input y input,en el caso de

Código Python:
Ver original
  1. fecha_nacimiento = datetime.date(1961, 4, 23)

Como seria?
  #5 (permalink)  
Antiguo 07/12/2014, 14:53
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 15 años, 7 meses
Puntos: 1360
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

¿Como que como sería?
Solo parseas el string que recibes como fecha. Ya sea usando manipulación de cadenas o algún otro método.
  #6 (permalink)  
Antiguo 07/12/2014, 20:21
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 5 años, 11 meses
Puntos: 0
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

Código Python:
Ver original
  1. a  = input ("Ingrese año:")
  2. m = input ("Ingrese mes:")
  3. d  = input ("Ingrese dia")
  4.  
  5. fecha_nacimiento = datetime.date("a", "m", "d")
  6.  
  7. print fecha_nacimiento
Eso me da mal
  #7 (permalink)  
Antiguo 07/12/2014, 20:27
 
Fecha de Ingreso: noviembre-2014
Mensajes: 50
Antigüedad: 5 años, 11 meses
Puntos: 0
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

ya esta ya lo arregle,pero como podria hacerlo para que pida ingresar los 3 datos en una linea .
  #8 (permalink)  
Antiguo 13/12/2014, 13:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 15 años, 7 meses
Puntos: 1360
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

Cita:
Iniciado por tapiadiego335 Ver Mensaje
ya esta ya lo arregle,pero como podria hacerlo para que pida ingresar los 3 datos en una linea .
Define un formato y parsealo.

Cita:
¿Como hago ese parseo?
Con manipulación de cadenas.

Cita:
¿Como hago manipulación de cadenas?
uh? Pues con los métodos que te ofrece python para manipular cadenas.

Cita:
¿Donde puedo leer mas de esto?
https://docs.python.org/2/library/string.html
https://docs.python.org/2/library/da...ptime-behavior

Cita:
¿Oye no tienes algo en español?
https://launchpadlibrarian.net/18980...ra%20todos.pdf (Pagina 54 donde ven algunos metodos de cadenas).
http://es.diveintopython.net/odbchelper_join.html

Etiquetas: date, mysql
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 03:21.