MySQLdb操作mysql的blob值
一般情况下我们是把图片存储在文件系统中,而只在数据库中存储文件路径的,但是有时候也会有特殊的需求:把图片二进制存入数据库。
今天我们采用的是python+mysql的方式
MYSQL 是支持把图片存入数据库的,也相应的有一个专门的字段 BLOB (Binary Large Object),即较大的二进制对象
还有个更大的存二进制的LONGBLOB;
这里需要注意:尽量把字段设置大一些,因为如果设置的字段长度过小,就会出现图片只显示一部分的情况。第二:如果数据量大的话尽量避免使用这种方式进行,因为mysql对于大数据的查询速度会很慢。
下面上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/usr/bin/python #-*- coding: UTF-8 -*- import MySQLdb as mysql import sys try : #读取图片文件 fp = open ( "./test.jpg" ) img = fp.read() fp.close() except IOError,e: print "Error %d %s" % (e.args[ 0 ],e.args[ 1 ]) sys.exit( 1 ) try : #mysql连接 conn = mysql.connect(host = 'localhost' ,user = 'root' ,passwd = '123456' ,db = 'test' ) cursor = conn.cursor() #注意使用Binary()函数来指定存储的是二进制 cursor.execute( "INSERT INTO images SET data='%s'" % mysql.Binary(img)) #如果数据库没有设置自动提交,这里要提交一下 conn.commit() cursor.close() #关闭数据库连接 conn.close() except mysql.Error,e: print "Error %d %s" % (e.args[ 0 ],e.args[ 1 ]) sys.exit( 1 ) |
MySQLdb操作mysql的blob值的更多相关文章
- mysql.connector操作mysql的blob值
This tutorial shows you how to work with MySQL BLOB data in Python, with examples of updating and re ...
- 使用MySQLdb操作Mysql数据库
MySQLdb简介 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司.在2008年1月16号被Sun公司收购.目前MySQL被广泛地应用在Internet上的中小型网站中.由于 ...
- PHP操作Mysql中间BLOB场
1.MySQL在BLOB字段类型 BLOB场的类型用于存储二进制数据. MySQL在.BLOB它是一种类型的一系列.含有:TinyBlob.Blob.MediumBlob.LongBlob.大小上不同 ...
- Python使用MySQLdb操作MySQL
import MySQLdb,sys try: conn=MySQLdb.connect(host=,user=',db='db1') except Exception,e: print e sys. ...
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
这里的前提是windows上已经安装了MySQL数据库,且配置完成,能正常建表能操作. 在此基础上仅仅需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了.仅仅有1M ...
- python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client
windows安装python操作mysql数据库的MySQLdb模块mysql-client 正常情况下应该是cmd下直接运行 pip install mysql-client 命令即可,试了很多台 ...
- jdbc,mysql 数据库BLOB返回值 [B 的问题
当jdbc返回值类型对应的java类型是[B,那就表示返回值的类型比较模糊难以区分: BLOB类型是mysql数据库常用来存储,但是通过getBlob()方法获取值得时候会报错: 错误信息: java ...
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- 操作MySQL出错提示“BLOB/TEXT column request_data in key specification without a key length”解决办法
错误原因: 查阅资料后才知道,原来Mysql数据库对于BLOB/TEXT这样类型的数据结构只能索引前N个字符.所以这样的数据类型不能作为主键,也不能是UNIQUE的.所以要换成VARCHAR,但是VA ...
随机推荐
- MES系统学习
MES系统是当今制造型企业信息化的热点,而统一建模语言UML是面向对象建模的标准语言,在软件工程发挥着重要作用.MES系统如何进行UML建模呢,今天和大家重点讨论一下MES系统的UML建模方法,请看本 ...
- qsort库函数的用法
qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *, ...
- RandomAccessFile使用小结
本文是基于Linux环境运行,读者阅读前需要具备一定Linux知识 RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,既可以读取文件内容,也可以向文件输出数据.与 ...
- Javascript 中 == 和 === 区别
转载几张图片,说明其中的具体意义 这是 == 这是 === 完整比较图: 红色:=== 橙色:== 黄色:<= 和 >= 同时成立,== 不成立 蓝色:只有 >= 绿色:只有 < ...
- CocoaPods安装及使用《转》
http://www.cnblogs.com/eagley/p/5407721.html
- 创建 Web 前端开发环境
Web 前端开发涉及多种工具,这里将常用工具的安装和配置进行说明,提供了详细的说明,为后继的开发创建一个坚实的基础. 本文介绍的工具有:NodeJS, NPM, Bower, Git 和 Grunt. ...
- 在windows下使用visual studio code建立.NET Core console程序
开发环境准备 下载vs code,.NET Core sdk: https://www.microsoft.com/net/core#windowscmd 目前最新版为code 1.8.1,.NET ...
- 56992 vuser_init.c(12): Error: Socket descriptor not found.
Loadrunner 运行场景时提示" vuser_init.c(12): Error: Socket descriptor not found. Hint: the problem mi ...
- vs2012启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
启动vs2012调试网站的时候提示: HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容. 最可能的原因: 没有为请求的 URL 配置默认文档,并且没有在服 ...
- lucene和ElasticSearch基本概念
lucene基本概念 索引(Index) 对应一个倒排表,一个检索的基本单位.在lucene中就对应一个目录. lucene基本概念 段(Segment) 一个索引可以包含多个段,段与段之间是独立的, ...