Cómo descargar el archivo en django?

Cómo descargar el archivo en django?
La opción de descarga es un requisito general para cualquier sitio web como el libro en línea, el software de aplicación gratuito, los juegos gratuitos, etc. Los usuarios del sitio pueden descargar los archivos necesarios en su dispositivo si la función de descarga se implementa para el sitio. El archivo se puede descargar después de ejecutar una URL en particular o hacer clic en el enlace de descarga y obtener permiso del usuario. Las formas de descargar un archivo de texto sin ningún enlace de descarga y un archivo PDF utilizando el enlace de descarga en la aplicación Django se mostrarán en este tutorial.

Prerrequisitos:

Antes de practicar el guión de este tutorial, debe completar las siguientes tareas.

  1. Instale la versión 3+ de Django en Ubuntu 20+ (preferiblemente)
  2. Crear un proyecto Django
  3. Ejecute el servidor Django para verificar que el servidor funcione correctamente o no.

Configurar una aplicación Django:

Ejecute el siguiente comando para crear una aplicación Django con nombre descargar aplicación. $ python3 gestionar.py startapp downloadapp

Ejecute el siguiente comando para crear el usuario para acceder a la base de datos Django. Si ha creado el usuario antes, no necesita ejecutar el comando.

$ python3 gestionar.py createuperuser

Agregue el nombre de la aplicación en el Instalado_app parte de ajustes.py archivo.

Instalado_apps = [

'descargar aplicación'
]

Crea una carpeta llamada plantillas dentro de descargar aplicación carpeta y configure el plantillas ubicación de la aplicación en el PLANTILLAS parte de ajustes.py archivo.


… .
'Dirs': ['/home/fahmida/django_pro/dopwnloadapp/plantlates'],
… .
,
]

Descargue un archivo de texto:

Modificar el puntos de vista.py archivo que está dentro del descargar aplicación carpeta con el siguiente script. El descargar archivo() la función descargará un archivo de texto llamado texto.TXT para una ruta de URL particular. El archivo se ha abierto para leer al comienzo del script. El tipo MIME y la información del encabezado se han configurado para descargar el archivo.

puntos de vista.py

# Importar mimetypes módulo
Importar Mimetypes
# Importar módulo OS
importar sistema operativo
# Importar el módulo httpresponse
de Django.http.Respuesta import httpresponse
Def descargar_file (solicitud):
# Definir directorio base del proyecto Django
Base_dir = OS.camino.Dirname (OS.camino.Dirname (OS.camino.abspath (__ archivo__))))
# Definir el nombre del archivo de texto
prueba de archivo = '.TXT'
# Defina la ruta del archivo completo
filepath = base_dir + '/downloadApp/files/' + nombre de archivo
# Abra el archivo para leer contenido
ruta = Open (FilePath, 'R')
# Establezca el tipo de mime
mime_type, _ = mimetypes.GUESS_TYPE (FilePath)
# Establezca el valor de retorno del httpresponse
respuesta = httpResponse (ruta, content_type = mime_type)
# Establezca el encabezado HTTP para enviar al navegador
Respuesta ['Content-Disposition'] = "adjunto; nombre de archivo = % s" % nombre de archivo
# Devuelve el valor de respuesta
Respuesta de retorno

Ahora, abra el URLS.py Archivo desde el proyecto Django y actualice el archivo con el siguiente script. El archivo de texto se descargará si la ruta, 'descargar/' se usa después de la URL base.

URLS.py

# Módulo de ruta de importación
de Django.ruta de importación de URLS
# Vistas de importación
Desde las vistas de importación de DownloadApp
# Establecer ruta para descargar
urlpatterns = [
ruta ('Descargar/', Vistas.descargar archivo),
]

Abra el navegador y ejecute la siguiente URL que abrirá el cuadro de diálogo Descargar para el usuario.

http: // localhost: 8000/descargar

El archivo se descargará si el usuario hace clic en el DE ACUERDO botón después de seleccionar el Guardar el archivo opción.

Descargue el archivo PDF usando la plantilla:

Se requerirá una plantilla para crear si desea agregar la opción de descarga con el enlace de descarga. Crear un archivo html llamado archivo.html con el siguiente script para mostrar el enlace de descarga en el navegador para descargar un archivo PDF. Según el hipervínculo que se usa en el script, descargará el CF.pdf archivo.

archivo.html


Descargar archivo



Descargar archivo usando django


Descargar PDF


Crear otro archivo de vista llamado Vistas2.py Con el siguiente script. El download_pdf_file () la función se ha definido en el script para descargar un archivo usando el enlace de descarga. El nombre de archivo se aprobará como el segundo valor de argumento de esta función. El archivo ha abierto para leer en modo binario para el archivo PDF. Si el valor del Nombre del archivo el argumento está vacío, entonces el archivo.html El archivo se mostrará en el navegador para mostrar el enlace de descarga.

Vistas2.py

# Importar mimetypes módulo
Importar Mimetypes
# Importar módulo OS
importar sistema operativo
# Importar el módulo httpresponse
de Django.http.Respuesta import httpresponse
# Módulo de renderizado de importación
de Django.Rénero de importación de atajos
# Definir la función para descargar el archivo PDF usando la plantilla
Def descargar_pdf_file (request, filename = "):
Si el nombre de archivo != ":
# Definir directorio base del proyecto Django
Base_dir = OS.camino.Dirname (OS.camino.Dirname (OS.camino.abspath (__ archivo__))))
# Defina la ruta del archivo completo
filepath = base_dir + '/downloadApp/files/' + nombre de archivo
# Abra el archivo para leer contenido
ruta = Open (FilePath, 'RB')
# Establezca el tipo de mime
mime_type, _ = mimetypes.GUESS_TYPE (FilePath)
# Establezca el valor de retorno del httpresponse
respuesta = httpResponse (ruta, content_type = mime_type)
# Establezca el encabezado HTTP para enviar al navegador
Respuesta ['Content-Disposition'] = "adjunto; nombre de archivo = % s" % nombre de archivo
# Devuelve el valor de respuesta
Respuesta de retorno
demás:
# Cargue la plantilla
return render (solicitud, 'archivo.html ')

Actualizar el URLS.py Archivo con el siguiente script para descargar un archivo PDF en particular usando el enlace de descarga.

URLS.py

# Módulo de ruta de importación
de Django.ruta de importación de URLS
# Importar vistas y vistas2
Desde las vistas de importación DownloadApp, Vistas2
# Establecer ruta para descargar
urlpatterns = [
ruta ('Descargar/', Vistas.descargar archivo),
ruta ('downloadpdf/', Vistas2.download_pdf_file, name = 'download_pdf_file'),
ruta ('downloadpdf //', vistas2.download_pdf_file, name = 'download_pdf_file'),
]

Abra el navegador y ejecute la siguiente URL que mostrará la archivo.html en el navegador.

http: // localhost: 8000/downloadpdf

Si el usuario hace clic en el enlace de descarga, el CF.pdf se pasará como el valor del Nombre del archivo argumento.

Si este archivo existe en la ubicación base de la aplicación, aparecerá el siguiente cuadro de diálogo. El usuario puede abrir el archivo en el navegador o el visor de documentos antes de descargar o descargar el archivo directamente sin abrirlo seleccionando el archivo de guardado opción y presionando el DE ACUERDO botón.

Conclusión:

Agregar una opción de descarga para texto y archivos PDF en la aplicación Django se mostró en este tutorial utilizando un script simple. Los nuevos usuarios de Django obtendrán una idea para agregar una opción de descarga sin y con un enlace de descarga en la aplicación Django después de leer este tutorial.