[pyar] INSERTAR UNA IMAGEN EN UNA BASE DE DATOS MYSQL

Gerardo Rios gsr.5392.tec en gmail.com
Vie Feb 26 23:13:47 ART 2016


Hola chicos:
Quiero insertar una imagen de formato jpg en la tabla IMAGENES de la base
de datos "imagenes_prueba" pero no me deja insertarla ni actualizar la base
de datos. Aqui le paso el codigo:

# -*- coding: UTF-8 -*-

import mysql.connector
#import pygame
from PIL import Image
import base64

def CargaTablaImagenes():

  bd_imagenes = mysql.connector.connect(user='*****', password='****',
host='********', database='imagenes_prueba')

  #Variable 'cursor' que se encargara de realizar las consultas SQL y
contendra la informacion para esa consulta

  cursor = bd_imagenes.cursor()


#--------------------------------------------------------------------------------------------------------------

  #CREAMOS LA TABLA IMAGENES

  sql = "CREATE TABLE IMAGENES (id INT NOT NULL auto_increment,imagen
LONGBLOB,tipo VARCHAR(255),PRIMARY KEY (id))"

  cursor.execute(sql)


#-------------------------------------------------------------------------------------------------------------

  # Cerramos cursor
  cursor.close()


#--------------------------------------------------------------------------------------------------------------

  #DESCONEXION DE LA BASE DE DATOS
  # Nos desconectamos de la base de datos
  bd_imagenes.close()


def CargaImagen():


bd_imagenes = mysql.connector.connect(user='*****', password='******',
host='*******', database='imagenes_prueba')

  #Variable 'cursor' que se encargara de realizar las consultas SQL y
contendra la informacion para esa consulta

  cursor = bd_imagenes.cursor()


#--------------------------------------------------------------------------------------------------------------


  #CARGAR LA IMAGEN

  #Abro el archivo de imagen para cargar sus contenidos
  archivo = "/home/gerardo/Escritorio/PYTHON/IMAGEN/piramide.jpg"

  imagen = Image.open(archivo)

  #PARA ENCONTRAR EL FORMATO DE LA IMAGEN
  formato = imagen.format


  #La guardamos en la BD

  datos  = 'encoded_b64 = \\\n"""' +
base64.encodestring(open(archivo,"rb").read()) + '"""' #transformamos la
imagen en datos

  #se carga los datos en la base de datos
  sql = """INSERT INTO IMAGENES (imagen,tipo) VALUES (% s,% s)""" , (datos,
formato)
  try:
   #Ejecutamos el comando
    cursor.execute(sql)
   #Efectuamos los cambios en la base de datos
    bd_imagenes.commit()
    print "Los datos se agregaron con exito"
  except:
   #Si se genero algún error revertamos la operación
    bd_imagenes.rollback()
    print "no se pudo agregar los datos"


#-------------------------------------------------------------------------------------------------------------

  # Cerramos cursor
  cursor.close()


#--------------------------------------------------------------------------------------------------------------

  #DESCONEXION DE LA BASE DE DATOS
  # Nos desconectamos de la base de Datos
  bd_imagenes.close()
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160226/9fd48af3/attachment.html>


Más información sobre la lista de distribución pyar