Джанго

Как скачать файл в Django?

Как скачать файл в Django?
Возможность загрузки является общим требованием для любого веб-сайта, такого как онлайн-книга, бесплатное программное обеспечение, бесплатные игры и т. Д. Пользователи сайта могут загружать необходимые файлы на свое устройство, если для сайта реализована функция загрузки. Файл можно загрузить после выполнения определенного URL-адреса или щелчка по ссылке для загрузки и получения разрешения от пользователя. В этом руководстве будут показаны способы загрузки текстового файла без ссылки для загрузки и файла PDF с использованием ссылки для загрузки в приложении Django.

Предпосылки:

Перед тем, как практиковать сценарий этого руководства, вам необходимо выполнить следующие задачи.

  1. Установите Django версии 3+ на Ubuntu 20+ (желательно)
  2. Создайте проект Django
  3. Запустите сервер Django, чтобы проверить, работает ли сервер правильно или нет.

Настройте приложение Django:

Выполните следующую команду, чтобы создать приложение Django с именем скачать приложение. $ python3 manage.py startapp downloadapp

Выполните следующую команду, чтобы создать пользователя для доступа к базе данных Django. Если вы создали пользователя до этого, вам не нужно запускать команду.

$ python3 manage.py создает суперпользователя

Добавьте название приложения в INSTALLED_APP часть настройки.ру файл.

INSTALLED_APPS = [

'downloadapp'
]

Создайте папку с именем шаблоны внутри скачать приложение папку и установите шаблон расположение приложения в ШАБЛОНЫ часть настройки.ру файл.

ШАБЛОНЫ = [

… .
'DIRS': ['/ home / fahmida / django_pro / dopwnloadapp / templates'],
… .
,
]

Загрузите текстовый файл:

Измените взгляды.ру файл, который находится внутри скачать приложение папка со следующим скриптом. В Скачать файл() функция загрузит текстовый файл с именем текст.текст для определенного пути URL. Файл открыт для чтения в начале скрипта. Для загрузки файла заданы тип MIME и заголовок.

взгляды.ру

# Импортировать модуль mimetypes
импортировать миметипы
# импортировать модуль ОС
импорт ОС
# Импортировать модуль HttpResponse
из джанго.http.импорт ответа HttpResponse
def download_file (запрос):
# Определить базовый каталог проекта Django
BASE_DIR = os.дорожка.dirname (os.дорожка.dirname (os.дорожка.abspath (__ файл__)))
# Определить имя текстового файла
имя_файла = 'тест.текст'
# Определить полный путь к файлу
filepath = BASE_DIR + '/ downloadapp / Files /' + имя файла
# Открываем файл для чтения содержимого
путь = открытый (путь к файлу, 'r')
# Установите тип пантомимы
mime_type, _ = mimetypes.guess_type (путь к файлу)
# Устанавливаем возвращаемое значение HttpResponse
response = HttpResponse (путь, content_type = mime_type)
# Установить HTTP-заголовок для отправки в браузер
ответ ['Content-Disposition'] = "вложение; filename =% s"% filename
# Возвращаем значение ответа
ответ на ответ

Теперь откройте URL-адреса.ру файл из проекта Django и обновите файл следующим скриптом. Текстовый файл загрузится, если путь, 'скачать/' используется после базового URL.

URL-адреса.ру

# Импортировать модуль пути
из джанго.путь импорта URL
# Импортировать просмотры
из просмотров загрузки приложения
# Установить путь для скачивания
urlpatterns = [
путь ('скачать /', просмотры.Скачать файл),
]

Откройте браузер и выполните следующий URL-адрес, который откроет диалоговое окно загрузки для пользователя.

http: // localhost: 8000 / скачать

Файл будет загружен, если пользователь щелкнет ОК кнопку после выбора Сохранить файл вариант.

Скачать PDF-файл по шаблону:

Шаблон потребуется создать, если вы хотите добавить вариант загрузки со ссылкой для загрузки. Создайте HTML-файл с именем файл.html с помощью следующего сценария, чтобы отобразить ссылку для загрузки в браузере для загрузки файла PDF. По гиперссылке, которая используется в скрипте, будет скачан CF.pdf файл.

файл.html


Скачать файл



Скачать файл с помощью Django


Скачать PDF


Создайте еще один файл представления с именем просмотров2.ру со следующим сценарием. В download_pdf_file () в скрипте была определена функция для загрузки файла по ссылке для скачивания. Имя файла будет передано как значение второго аргумента этой функции. Файл открыт для чтения в двоичном режиме для файла PDF. Если значение имя файла аргумент пуст, тогда файл.html файл будет отображаться в браузере, чтобы показать ссылку для загрузки.

просмотров2.ру

# Импортировать модуль mimetypes
импортировать миметипы
# импортировать модуль ОС
импорт ОС
# Импортировать модуль HttpResponse
из джанго.http.импорт ответа HttpResponse
# Импортировать модуль рендеринга
из джанго.ярлыки импорт рендеринга
# Определить функцию для загрузки файла pdf с использованием шаблона
def download_pdf_file (запрос, имя файла = "):
если имя файла !знак равно
# Определить базовый каталог проекта Django
BASE_DIR = os.дорожка.dirname (os.дорожка.dirname (os.дорожка.abspath (__ файл__)))
# Определить полный путь к файлу
filepath = BASE_DIR + '/ downloadapp / Files /' + имя файла
# Открываем файл для чтения содержимого
путь = открытый (путь к файлу, 'rb')
# Установите тип пантомимы
mime_type, _ = mimetypes.guess_type (путь к файлу)
# Устанавливаем возвращаемое значение HttpResponse
response = HttpResponse (путь, content_type = mime_type)
# Установить HTTP-заголовок для отправки в браузер
ответ ['Content-Disposition'] = "вложение; filename =% s"% filename
# Возвращаем значение ответа
ответ на ответ
еще:
# Загрузить шаблон
вернуть рендер (запрос, 'файл.html ')

Обновите URL-адреса.ру файл со следующим сценарием, чтобы загрузить конкретный файл PDF по ссылке для скачивания.

URL-адреса.ру

# Импортировать модуль пути
из джанго.путь импорта URL
# Импорт представлений и представлений2
из downloadapp импорт просмотров, просмотров2
# Установить путь для скачивания
urlpatterns = [
путь ('скачать /', просмотры.Скачать файл),
путь ('downloadpdf /', просмотров2.download_pdf_file, name = 'download_pdf_file'),
путь ('downloadpdf //', просмотров2.download_pdf_file, name = 'download_pdf_file'),
]

Откройте браузер и выполните следующий URL-адрес, который отобразит файл.html в браузере.

http: // локальный: 8000 / downloadpdf

Если пользователь нажимает ссылку для загрузки, CF.pdf будет передано как значение имя файла аргумент.

Если этот файл существует в базовом расположении приложения, появится следующее диалоговое окно. Пользователь может открыть файл в браузере или средстве просмотра документов перед загрузкой или загрузить файл напрямую, не открывая его, выбрав файл сохранения вариант и нажав ОК кнопка.

Заключение:

Добавление опции загрузки для текстовых и PDF-файлов в приложение Django было показано в этом руководстве с помощью простого скрипта. Новые пользователи Django получат идею добавить вариант загрузки без ссылки для загрузки в приложении Django и со ссылкой на нее после прочтения этого руководства.

Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...
Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...