#python #django #zip
#python #джанго #zip
Вопрос:
В настоящее время я выполняю вызов API, который отправляет обратно zip-файл. При использовании request
:
res = requests.get('http://url/to/api, headers={auth: 'token', Accept: 'application/octet-stream'}
Я могу получить содержимое двоичного ответа, используя res.content
:
Пример:
b'PKx05x06...
Затем я возвращаю двоичный ответ из моего представления в мой шаблон:
return render(request, 'example.html', {'zipfile': res.content}
В моем example.html
случае я попытался создать кнопку для загрузки zip-файла с помощью:
<a href="data:application/zip, {{ zipfile }}" download>Download</a>
Однако я получил обратно поврежденный zip-файл.
Я совсем новичок в Django, любая помощь здесь приветствуется, спасибо!
Комментарии:
1. почему вы отправляете его в шаблон? zip-файл — это
bytes
данные, но при отправке вstring
шаблон вы создаете нечитаемый элемент, потому что он должен быть преобразованbytes
string
. Если вы хотите поместить его<a>
, тогда лучше преобразовать вbase64
строку. аналогично изображению в Flask: как использовать BytesIO в Flask для отображения изображения matplotlib без сохранения в файле.2. Mozilla doc: URL-адреса данных — ie.
data:text/plain;base64,SGVsbG8sIFdvcmxkIQ==