Como baixar o arquivo em django?

Como baixar o arquivo em django?
A opção de download é um requisito geral para qualquer site como o livro on -line, software de aplicativo gratuito, jogos gratuitos, etc. Os usuários do site podem baixar os arquivos necessários em seu dispositivo se o recurso de download for implementado para o site. O arquivo pode ser baixado após executar um URL específico ou clicar no link de download e obter permissão do usuário. As maneiras de baixar um arquivo de texto sem qualquer link para download e um arquivo pdf usando o link de download no aplicativo Django serão mostrados neste tutorial.

Pré -requisitos:

Antes de praticar o script deste tutorial, você deve concluir as seguintes tarefas.

  1. Instale a versão Django 3+ no Ubuntu 20+ (de preferência)
  2. Crie um projeto Django
  3. Execute o servidor Django para verificar se o servidor está funcionando corretamente ou não.

Configure um aplicativo django:

Execute o seguinte comando para criar um aplicativo django nomeado baixar aplicativo. $ python3 gerencia.PY StartApp DownloadApp

Execute o seguinte comando para criar o usuário para acessar o banco de dados Django. Se você criou o usuário antes disso, não precisa executar o comando.

$ python3 gerencia.py createSuperUser

Adicione o nome do aplicativo no Instalado_app parte de configurações.py arquivo.

Instalado_apps = [
..
'baixar aplicativo'
]

Crie uma pasta chamada modelos dentro de baixar aplicativo pasta e defina o modelos Localização do aplicativo no MODELOS parte de configurações.py arquivo.


.. .
'Dirs': ['/home/fahmida/django_pro/dopwnloadApp/modelos'],
.. .
,
]

Baixe um arquivo de texto:

Modifique o Visualizações.py arquivo que está dentro do baixar aplicativo pasta com o seguinte script. O ⇬ Fazer download do arquivo() Função vai baixar um arquivo de texto chamado texto.TXT Para um caminho de URL específico. O arquivo foi aberto para leitura no início do script. As informações do tipo MIME e do cabeçalho foram definidas para baixar o arquivo.

Visualizações.py

# Importar módulo de mimetipos
Importar mimetipos
# importar o módulo OS
OS de importação
# Importar módulo HTTPRESPONS
de Django.http.Resposta Importar httpResponse
def download_file (solicitação):
# Definir diretório base do projeto Django
Base_dir = os.caminho.Dirname (OS.caminho.Dirname (OS.caminho.Abspath (__ file__)))
# Defina o nome do arquivo de texto
nome do arquivo = 'teste.TXT'
# Defina o caminho completo do arquivo
filepath = base_dir + '/downloadApp/files/' + nome do arquivo
# Abra o arquivo para ler o conteúdo
caminho = aberto (filepath, 'r')
# Defina o tipo MIME
Mime_type, _ = mimetipos.adivinhe_type (filepath)
# Defina o valor de retorno do httproponse
Resposta = httproPense (caminho, content_type = Mime_type)
# Defina o cabeçalho HTTP para enviar para o navegador
Resposta ['Content-Disposition'] = "Anexo; nome do arquivo = % s" % nome do arquivo
# Retorne o valor da resposta
resposta de retorno

Agora, abra o URLs.py arquivo do projeto Django e atualize o arquivo com o seguinte script. O arquivo de texto será baixado se o caminho, 'download/' é usado após o URL base.

URLs.py

# Módulo de caminho de importação
de Django.URLs Caminho de importação
# Importar visualizações
De vistas de importação do DownloadApp
# Defina caminho para download
urlpatterns = [
caminho ('download/', visualizações.⇬ Fazer download do arquivo),
]

Abra o navegador e execute o seguinte URL que abrirá a caixa de diálogo Download para o usuário.

http: // localhost: 8000/download

O arquivo será baixado se o usuário clicar no OK botão depois de selecionar o Salvar Arquivo opção.

Baixe o arquivo PDF usando o modelo:

Um modelo será necessário para criar se você quiser adicionar a opção de download com o link de download. Crie um arquivo HTML nomeado arquivo.html com o script a seguir para exibir o link de download no navegador para baixar um arquivo PDF. De acordo com o hiperlink usado no script, baixará o Cf.pdf arquivo.

arquivo.html


⇬ Fazer download do arquivo



Baixe o arquivo usando django


baixar PDF


Crie outro arquivo de exibição chamado Views2.py com o seguinte script. O download_pdf_file () A função foi definida no script para baixar um arquivo usando o link de download. O nome do arquivo será passado como o segundo valor de argumento desta função. O arquivo foi aberto para leitura no modo binário para o arquivo PDF. Se o valor do nome do arquivo O argumento está vazio, então o arquivo.html O arquivo será exibido no navegador para mostrar o link de download.

Views2.py

# Importar módulo de mimetipos
Importar mimetipos
# importar o módulo OS
OS de importação
# Importar módulo HTTPRESPONS
de Django.http.Resposta Importar httpResponse
# Importar módulo de renderização
de Django.Atalhos de importação renderizar
# Defina a função para baixar o arquivo pdf usando o modelo
def download_pdf_file (request, filename = "):
Se o nome do arquivo != ":
# Definir diretório base do projeto Django
Base_dir = os.caminho.Dirname (OS.caminho.Dirname (OS.caminho.Abspath (__ file__)))
# Defina o caminho completo do arquivo
filepath = base_dir + '/downloadApp/files/' + nome do arquivo
# Abra o arquivo para ler o conteúdo
caminho = aberto (filepath, 'rb')
# Defina o tipo MIME
Mime_type, _ = mimetipos.adivinhe_type (filepath)
# Defina o valor de retorno do httproponse
Resposta = httproPense (caminho, content_type = Mime_type)
# Defina o cabeçalho HTTP para enviar para o navegador
Resposta ['Content-Disposition'] = "Anexo; nome do arquivo = % s" % nome do arquivo
# Retorne o valor da resposta
resposta de retorno
outro:
# Carregue o modelo
Retornar renderizar (solicitar, 'arquivo.html ')

Atualize o URLs.py Arquivo com o script a seguir para baixar um arquivo PDF específico usando o link de download.

URLs.py

# Módulo de caminho de importação
de Django.URLs Caminho de importação
# Importar visualizações e visualizações2
De vistas de importação do DownloadApp, Views2
# Defina caminho para download
urlpatterns = [
caminho ('download/', visualizações.⇬ Fazer download do arquivo),
Path ('Downloadpdf/', Views2.download_pdf_file, name = 'download_pdf_file'),
Path ('Downloadpdf //', Views2.download_pdf_file, name = 'download_pdf_file'),
]

Abra o navegador e execute o seguinte URL que exibirá o arquivo.html no navegador.

http: // localhost: 8000/downloadpdf

Se o usuário clicar no link de download, o Cf.pdf será passado como o valor do nome do arquivo argumento.

Se esse arquivo existir na localização base do aplicativo, a seguinte caixa de diálogo aparecerá. O usuário pode abrir o arquivo no navegador ou no visualizador de documentos antes do download ou baixar o arquivo diretamente sem abri -lo selecionando o arquivo salvar opção e pressionando o OK botão.

Conclusão:

Adicionando uma opção de download para arquivos de texto e PDF no aplicativo Django foi mostrado neste tutorial usando um script simples. Os novos usuários do Django terão uma idéia para adicionar uma opção de download sem e com um link para download no aplicativo Django depois de ler este tutorial.