[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