Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 20.04.2017
Сообщений: 267

Как скачать сформированный в Django файл на компьютер пользователя?

30.05.2019, 22:01. Показов 787. Ответов 0
Метки go (Все метки)

Студворк — интернет-сервис помощи студентам
в Django проекте cформировал отчет в виде XLS файла.
Как его отправить пользователю на скачивание?
пробую сделать он не выдает в конце файл
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@csrf_exempt
def download(request):
    if request.POST:
        print(1)
        shutil.copy("media/xl1.xlsm", "media/xl2.xlsm") 
        destination_filename = "media/xl2.xlsm"
        print(2)
        d1 = request.POST["d1"]
        d2 = request.POST["d2"]
        d3 = request.POST["d3"]
        d4 = request.POST["d4"]
        a = request.POST["a"]
        b2 = request.POST["b2"]
        b3 = request.POST["b3"]
        b4 = request.POST["b4"]
        c2 = request.POST["c2"]
        print(3)
        wb = openpyxl.load_workbook('media/xl2.xlsm')
        print(4)
        worksheet = wb['Лист1'] 
        worksheet["B4"]= int(d1)
        worksheet["C4"]= int(d2)
        worksheet["D4"]= int(d3)
        worksheet["E4"]= int(d4)
        worksheet["B5"]= int(a)
        worksheet["C6"]= int(b2)
        worksheet["D6"]= int(b3)
        worksheet["E6"]= int(b4)
        worksheet["C7"]= int(c2)
        print(5)
        wb.save('media/xl2.xlsm')
        print(6)
    return FileResponse(open('media/xl2.xlsx', 'rb'))
пробую также. он выдает ошибку в терминале UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 12: invalid start byte
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@csrf_exempt
def download(request):
    if request.POST:
        print(1)
        shutil.copy("media/xl1.xlsm", "media/xl2.xlsm") 
        destination_filename = "media/xl2.xlsm"
        print(2)
        d1 = request.POST["d1"]
        d2 = request.POST["d2"]
        d3 = request.POST["d3"]
        d4 = request.POST["d4"]
        a = request.POST["a"]
        b2 = request.POST["b2"]
        b3 = request.POST["b3"]
        b4 = request.POST["b4"]
        c2 = request.POST["c2"]
        print(3)
        wb = openpyxl.load_workbook('media/xl2.xlsm')
        print(4)
        worksheet = wb['Лист1'] 
        worksheet["B4"]= int(d1)
        worksheet["C4"]= int(d2)
        worksheet["D4"]= int(d3)
        worksheet["E4"]= int(d4)
        worksheet["B5"]= int(a)
        worksheet["C6"]= int(b2)
        worksheet["D6"]= int(b3)
        worksheet["E6"]= int(b4)
        worksheet["C7"]= int(c2)
        print(5)
        wb.save('media/xl2.xlsm')
        print(6)
        filepath = 'media/xl2.xlsm'
        with open(filepath, 'r', newline='', encoding='utf-8') as fp:
            data = fp.read()
        filename = 'some-filename.xlsx'
        response = HttpResponse(content_type="application/ms-excel")
        response['Content-Disposition'] = 'attachment; filename=%s' % filename # force browser to download file
        response.write(data)
        return response
как решить данную ситуацию?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2019, 22:01
Ответы с готовыми решениями:

Как скачать сформированный в Django файл на компьютер пользователя?
в Django проекте cформировал отчет в виде XLS файла. Не могу понять как его теперь скачать на локальный компьютер?

Как скачать через JS сформированный файл php
у меня создается на сервере файл c помощью php скрипта: $file = 'Реестр от '.date('Y-m-d H-i-s').'.xlsx'; // Если пользователь...

Как скачать файл в django?
Доброго времени суток, есть модель AAA, в моделе поле ImageField, с сервера в request.FILES.get("photo") приходит изображение ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2019, 22:01
Помогаю со студенческими работами здесь

Как выдать сформированный файл пользователю через браузер?
Реализован механизм формирования отчета в виде документа OpenOffice. Проблема в том, как из этого документа создать файл (или поток), и,...

Как скачать изображение из <img> через django?
Доброго времени суток, есть задача с помощью django скачать фотографию из тега img Так как никак засунуть фотографию в inout file...

Скачать файл по ссылкам из файла из интернета на компьютер
Скачать файл по ссылкам из файла из интернета на комп - C# Добавлено через 23 минуты WebClient webload = new WebClient(); ...

Как давать пользователю скачать файл с сайта не по прямой ссылке,чтобы он не смог скачать его 2 раза по той же ссылке?
Грубо говоря, надо давать пользователю скачать файл, если он ввёл правильный пароль. Чтобы он не мог скачать его второй раз по этому же...

XML - записать уже сформированный файл
Доброго времени суток, есть код: ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(&quot;UTF-8&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru