python3图片转换二进制存入mysql

yipeiwu_com6年前Python基础

首先,在数据库中创建一个表,用于存放图片:

复制代码 代码如下:

CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);


然后运行如下PYTHON代码进行:

复制代码 代码如下:

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
try:
    #用读文件模式打开图片
    fin = open("../web.jpg")
    #将文本读入img对象中
    img = fin.read()
    #关闭文件
    fin.close()
except IOError, e:
    #如果出错,打印错误信息
    print "Error %d: %s" % (e.args[0],e.args[1])
    sys.exit(1)
try:
    #链接mysql,获取对象
    conn = mdb.connect(host='localhost',user='root',passwd='root', db='test')
    #获取执行cursor
    cursor = conn.cursor()
    #直接将数据作为字符串,插入数据库
    cursor.execute("INSERT INTO Images SET Data='%s'" % mdb.escape_string(img))
    #提交数据
    conn.commit()
    #提交之后,再关闭cursor和链接
    cursor.close()
    conn.close()
except mdb.Error, e:
    #若出现异常,打印信息
    print "Error %d: %s" % (e.args[0],e.args[1])

相关文章

初步理解Python进程的信号通讯

信号的概念 信号(signal)--     进程之间通讯的方式,是一种软件中断。一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号。 几...

python通过socket实现多个连接并实现ssh功能详解

python通过socket实现多个连接并实现ssh功能详解

一、前言   上一篇中我们已经知道了客户端通过socket来连接服务端,进行了一次数据传输,那如何实现客户端多次发生数据?而服务端接受多个客户端呢? 二、发送中文信息   在python...

Python读大数据txt

如果直接对大文件对象调用 read() 方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。即通过yield。     在用P...

Python单元测试框架unittest简明使用实例

Python单元测试框架unittest简明使用实例

测试步骤 1. 导入unittest模块 import unittest 2. 编写测试的类继承unittest.TestCase class Tester(unittest.TestC...

详解python实现交叉验证法与留出法

详解python实现交叉验证法与留出法

在机器学习中,我们经常在训练集上训练模型,在测试集上测试模型。最终的目标是希望我们的模型在测试集上有最好的表现。 但是,我们往往只有一个包含m个观测的数据集D,我们既要用它进行训练,又要...