LINUX.ORG.RU

[Python] Запихнуть digest в BLOB

 


0

0

hash = hashlib.sha1(bittorrent.bencode(torrent['info'])).digest() cursor = connection.cursor()

cursor.execute("INSERT INTO `torrents`(`fid`, `info_hash`, `name`, `size`, `mtime`, `ctime`, `oid`) VALUES(%s, %s, %s, %s, %s, %s, %s)" , (id, hash, torrent['info']['name'], size, time(), time(), request.session['id']))

У кого-нибудь есть какие-нибудь мысли по этому поводу ?

З.Ы. MySQLdb.escape_string() и MySQLdb.Binary() не помогли :)

★☆

hash = hashlib.sha1(bittorrent.bencode(torrent['info'])).digest()
cursor = connection.cursor()

cursor.execute("INSERT INTO `torrents`(`fid`, `info_hash`, `name`, `size`, `mtime`, `ctime`, `oid`) VALUES(%s, %s, %s, %s, %s, %s, %s)" , (id, hash, torrent['info']['name'], size, time(), time(), request.session['id']))

phasma ★☆
() автор топика

Та как я помню, кривожопый MySQLdb пытается весь SQL-запрос целиком закодировать в выбранной кодировке, по дефолту UTF-8, вместе с блобами же. Юзай blob.decode('latin1'), например.

tomodachi_ni_narimashou
()
Ответ на: комментарий от tomodachi_ni_narimashou

ну почти :) Это не кривожопый MySQLdb оказался, это кривожопая Django оказалась, она хотела блоб в utf-8 перевести.

phasma ★☆
() автор топика
Ответ на: комментарий от true_admin

> а в чём проблема? Эксепшн какой-нить вылезает или что?

django.db.connection пытается перекодировать все в UTF-8, решается работой с MySQLdb напрямую.

phasma ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.