Найти - Пользователи
Полная версия: django выдача бинарных файлов
Начало » Django » django выдача бинарных файлов
1
Bdfy1
Есть бинарный файл ( картинка ) в БД 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 ?
slav0nic
http://docs.djangoproject.com/en/dev/ref/request-response/#passing-strings
...
response = HttpResponse(data, mimetype='image/jpeg')
return response
Bdfy1
Гм действительно надо было указать правильный 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
Не получается - видимо где то ошибка ?
Что значит “не получается”?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB