Comment télécharger le fichier dans Django?

Comment télécharger le fichier dans Django?
L'option de téléchargement est une exigence générale pour tout site Web comme le livre en ligne, les logiciels d'application gratuits, les jeux gratuits, etc. Les utilisateurs du site peuvent télécharger les fichiers nécessaires sur leur appareil si la fonction de téléchargement est implémentée pour le site. Le fichier peut être téléchargé après avoir exécuté une URL particulière ou cliqué sur le lien de téléchargement et obtenu l'autorisation de l'utilisateur. Les façons de télécharger un fichier texte sans lien de téléchargement et un fichier PDF à l'aide du lien de téléchargement dans l'application Django seront affichés dans ce tutoriel.

Conditions préalables:

Avant de pratiquer le script de ce tutoriel, vous devez effectuer les tâches suivantes.

  1. Installez la version 3+ de Django sur Ubuntu 20+ (de préférence)
  2. Créer un projet Django
  3. Exécutez le serveur Django pour vérifier que le serveur fonctionne correctement ou non.

Configurer une application Django:

Exécutez la commande suivante pour créer une application django nommée télécharger. $ python3 gérer.py startapp downloadApp

Exécutez la commande suivante pour créer l'utilisateur pour accéder à la base de données Django. Si vous avez créé l'utilisateur avant cela, vous n'avez pas besoin d'exécuter la commande.

$ python3 gérer.py créeuperuser

Ajouter le nom de l'application dans le Installé_app partie de la paramètres.py déposer.

Installé_apps = [

'DownloadApp'
]]

Créer un dossier nommé modèles à l'intérieur de télécharger dossier et définissez le modèle Emplacement de l'application dans le Modèles partie de la paramètres.py déposer.


… .
'DIRS': ['/ home / fahmida / django_pro / dopwnloadapp / modèles'],
… .
,
]]

Téléchargez un fichier texte:

Modifier le vues.py fichier qui se trouve à l'intérieur du télécharger dossier avec le script suivant. Le télécharger un fichier() La fonction téléchargera un fichier texte nommé texte.SMS Pour un chemin d'URL particulier. Le fichier a ouvert ses portes au début du script. Le type MIME et les informations d'en-tête ont été définis pour télécharger le fichier.

vues.py

# Importer le module MIMETYPES
Importer des mimétypes
# Module d'importation du système d'exploitation
Importer un système d'exploitation
# Importer le module HTTPResponse
De Django.http.Réponse importation httpResponse
Def Download_file (demande):
# Définir le répertoire de base du projet Django
Base_dir = os.chemin.dirname (OS.chemin.dirname (OS.chemin.abspath (__ fichier__))))
# Définir le nom du fichier texte
FileName = 'Test.SMS'
# Définir le chemin complet du fichier
filepath = base_dir + '/ downloadapp / files /' + nom de fichier
# Ouvrez le fichier pour la lecture du contenu
chemin = ouvert (filepath, 'r')
# Définissez le type MIME
mime_type, _ = mimétypes.deviner_type (filepath)
# Définissez la valeur de retour de la HttpResponse
Response = httpResponse (path, content_type = mime_type)
# Définissez l'en-tête HTTP pour envoyer au navigateur
réponse ['contenu-disposition'] = "attachement; nom de fichier =% s"% nom de fichier
# Renvoie la valeur de réponse
Réponse de retour

Maintenant, ouvrez le URL.py fichier du projet Django et mettez à jour le fichier avec le script suivant. Le fichier texte téléchargera si le chemin, 'télécharger/' est utilisé après l'URL de base.

URL.py

# Module d'importation de chemin
De Django.Chemin d'importation des URL
# Importation des vues
à partir des vues d'importation de téléchargement
# Définir le chemin de téléchargement
urlpatterns = [
Path ('Télécharger /', vues.télécharger un fichier),
]]

Ouvrez le navigateur et exécutez l'URL suivante qui ouvrira la boîte de dialogue de téléchargement pour l'utilisateur.

http: // localhost: 8000 / téléchargement

Le fichier sera téléchargé si l'utilisateur clique sur le D'ACCORD bouton après avoir sélectionné le Enregistrer le fichier option.

Téléchargez le fichier PDF à l'aide du modèle:

Un modèle devra créer si vous souhaitez ajouter l'option de téléchargement avec le lien de téléchargement. Créer un fichier html nommé déposer.html avec le script suivant pour afficher le lien de téléchargement dans le navigateur pour télécharger un fichier PDF. Selon l'hyperlien utilisé dans le script Cf.pdf déposer.

déposer.html


Télécharger un fichier



Télécharger le fichier à l'aide de Django


Télécharger le PDF


Créer un autre fichier d'affichage nommé vues2.py avec le script suivant. Le téléchargement_pdf_file () La fonction a été définie dans le script pour télécharger un fichier à l'aide du lien de téléchargement. Le nom de fichier sera passé comme la deuxième valeur d'argument de cette fonction. Le fichier a ouvert ses portes en mode binaire pour le fichier PDF. Si la valeur du nom de fichier L'argument est vide, alors le déposer.html Le fichier sera affiché dans le navigateur pour afficher le lien de téléchargement.

vues2.py

# Importer le module MIMETYPES
Importer des mimétypes
# Module d'importation du système d'exploitation
Importer un système d'exploitation
# Importer le module HTTPResponse
De Django.http.Réponse importation httpResponse
# Module d'importation
De Django.Raccourcis
# Définissez la fonction pour télécharger le fichier PDF à l'aide du modèle
def téléchargement_pdf_file (request, filename = "):
Si le nom de fichier != ":
# Définir le répertoire de base du projet Django
Base_dir = os.chemin.dirname (OS.chemin.dirname (OS.chemin.abspath (__ fichier__))))
# Définir le chemin complet du fichier
filepath = base_dir + '/ downloadapp / files /' + nom de fichier
# Ouvrez le fichier pour la lecture du contenu
chemin = ouvert (filepath, 'rb')
# Définissez le type MIME
mime_type, _ = mimétypes.deviner_type (filepath)
# Définissez la valeur de retour de la HttpResponse
Response = httpResponse (path, content_type = mime_type)
# Définissez l'en-tête HTTP pour envoyer au navigateur
réponse ['contenu-disposition'] = "attachement; nom de fichier =% s"% nom de fichier
# Renvoie la valeur de réponse
Réponse de retour
autre:
# Chargez le modèle
renvoyer le rendu (demande, «fichier.html ')

Mettre à jour le URL.py Fichier avec le script suivant pour télécharger un fichier PDF particulier à l'aide du lien de téléchargement.

URL.py

# Module d'importation de chemin
De Django.Chemin d'importation des URL
# Importer des vues et des vues2
à partir des vues d'importation de téléchargement, vues2
# Définir le chemin de téléchargement
urlpatterns = [
Path ('Télécharger /', vues.télécharger un fichier),
Path ('DownloadPdf /', Views2.téléchargement_pdf_file, name = 'download_pdf_file'),
Path ('DownloadPdf //', vues2.téléchargement_pdf_file, name = 'download_pdf_file'),
]]

Ouvrez le navigateur et exécutez l'URL suivante qui affichera le déposer.html dans le navigateur.

http: // localhost: 8000 / downloadpdf

Si l'utilisateur clique sur le lien de téléchargement, le Cf.pdf sera passé comme la valeur du nom de fichier argument.

Si ce fichier existe à l'emplacement de base de l'application, alors la boîte de dialogue suivante apparaîtra. L'utilisateur peut ouvrir le fichier dans le navigateur ou la visionneuse de documents avant le téléchargement ou télécharger le fichier directement sans l'ouvrir en sélectionnant le fichier de sauvegarde option et appuyer sur le D'ACCORD bouton.

Conclusion:

L'ajout d'une option de téléchargement pour le texte et les fichiers PDF dans l'application Django a été affichée dans ce tutoriel à l'aide d'un script simple. Les nouveaux utilisateurs de Django auront une idée d'ajouter une option de téléchargement sans et avec un lien de téléchargement dans l'application Django après avoir lu ce tutoriel.