Форум сайта python.su
Есть бинарный файл ( картинка ) в БД PostgreSQL ( BYTEA ).
соотв с помошью psycopg2 ( т к встроенная ORM не поддерживает бинарные поля ) берется
cursor = connection.cursor()
cursor.execute(“SELECT file from table where id = 1” );
row = cursor.fetchone();
В row находится сей бинарник - т е нужно чтобы при ссылке на это ( image/show?id=1 ) выдавалась картинка.
Как его вывести через HttpResponse ?
Еще желательно определить mimetype - как я понимаю это должно делаться через python magic ?
Отредактировано (Ноя. 3, 2009 16:00:37)
Офлайн
http://docs.djangoproject.com/en/dev/ref/request-response/#passing-strings
...
response = HttpResponse(data, mimetype='image/jpeg')
return response
Офлайн
Гм действительно надо было указать правильный mimetype.
А вот еще один вопрос: Нужно файл засунуть в БД ( т к django не поддерживает сие приходится делать через psycopg2 ).
from django.db import transaction
from django.db import connection
import psycopg2 as ps2
sql = "UPDATE шmages set file = %s WHERE id = " + str(id);
cursor = connection.cursor()
cursor.execute(sql % ps2.Binary('test'));
buffer = handle_uploaded_file(request.FILES['file']);
def handle_uploaded_file(f):
import StringIO
buffer = StringIO.StringIO();
for chunk in f.chunks():
buffer.write(chunk);
buffer.close();
return buffer;
cursor.execute(sql % ps2.Binary(buffer.read()));
Офлайн
Bdfy1Что значит “не получается”?
Не получается - видимо где то ошибка ?
Офлайн