MySQLdb操作mysql的blob值

來源:互聯網
上載者:User

標籤:comment   ror   user   資料   pytho   key   nts   oca   串連   

一般情況下我們是把圖片儲存在檔案系統中,而只在資料庫中隱藏檔路徑的,但是有時候也會有特殊的需求:把圖片二進位存入資料庫。

今天我們採用的是python+mysql的方式

MYSQL 是支援把圖片存入資料庫的,也相應的有一個專門的欄位 BLOB (Binary Large Object),即較大的二進位對象

還有個更大的存二進位的LONGBLOB;

這裡需要注意:盡量把欄位設定大一些,因為如果設定的欄位長度過小,就會出現圖片只顯示一部分的情況。第二:如果資料量大的話盡量避免使用這種方式進行,因為mysql對於大資料的查詢速度會很慢。

下面上代碼:

123456789101112131415161718192021222324252627 #!/usr/bin/python#-*- coding: UTF-8 -*-  import MySQLdb as mysqlimport systry:    #讀取圖片檔案    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值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.