Jak pobrać plik w Django?

Jak pobrać plik w Django?
Opcja pobierania jest ogólnym wymogiem dla każdej strony internetowej, takiej jak książka online, bezpłatne oprogramowanie aplikacyjne, bezpłatne gry itp. Użytkownicy witryny mogą pobrać niezbędne pliki na swoim urządzeniu, jeśli funkcja pobierania jest zaimplementowana dla witryny. Plik można pobrać po wykonaniu określonego adresu URL lub kliknięciu linku do pobrania i uzyskaniu uprawnień od użytkownika. Sposoby pobierania pliku tekstowego bez żadnego linku do pobrania i pliku PDF za pomocą linku do pobrania w aplikacji Django będą wyświetlane w tym samouczku.

Wymagania wstępne:

Przed ćwiczeniem scenariusza tego samouczka musisz wykonać następujące zadania.

  1. Zainstaluj wersję Django 3+ na Ubuntu 20+ (najlepiej)
  2. Utwórz projekt Django
  3. Uruchom serwer Django, aby sprawdzić, czy serwer działa poprawnie lub nie.

Skonfiguruj aplikację Django:

Uruchom następujące polecenie, aby utworzyć aplikację Django o nazwie Pobierz aplikację. $ Python3 Zarządzaj.PY STARTAPPPLAPPAPP

Uruchom następujące polecenie, aby utworzyć użytkownika w celu uzyskania dostępu do bazy danych Django. Jeśli wcześniej utworzyłeś użytkownika, nie musisz uruchamiać polecenia.

$ Python3 Zarządzaj.PY CreateSuperuser

Dodaj nazwę aplikacji w Zainstalowany_app część Ustawienia.py plik.

Instalowane_apps = [

'Pobierz aplikację'
]

Utwórz folder o nazwie szablony w środku Pobierz aplikację folder i ustaw szablon Lokalizacja aplikacji w Szablony część Ustawienia.py plik.


… .
„Dirs”: ['/home/fahmida/django_pro/dopwnloadapp/szablony']],
… .
,
]

Pobierz plik tekstowy:

Zmodyfikuj wyświetlenia.py plik, który jest w środku Pobierz aplikację folder z następującym skryptem. pobieranie pliku() Funkcja pobranie pliku tekstowego o nazwie tekst.tekst dla konkretnej ścieżki URL. Plik został otwarty do odczytania na początku skryptu. Informacje o typach MIME i nagłówku zostały ustawione do pobrania pliku.

wyświetlenia.py

# Importuj moduł mimetypów
Import mimetypów
# Importuj moduł OS
Import OS
# Importuj moduł httpresponse
z Django.http.Odpowiedź Import Httpresponse
def Download_file (żądanie):
# Zdefiniuj katalog bazowy projektu Django
Base_dir = OS.ścieżka.Dirname (OS.ścieżka.Dirname (OS.ścieżka.Abspath (__ plik__))))
# Zdefiniuj nazwę pliku tekstowego
FileName = 'Test.tekst'
# Zdefiniuj pełną ścieżkę pliku
filepath = base_dir + '/downloadApp/files/' + nazwa pliku
# Otwórz plik do odczytania treści
ścieżka = otwarte (FilePath, „r”)
# Ustaw typ MIME
MIME_TYPE, _ = mimetypy.haad_type (FilePath)
# Ustaw wartość zwracania httpresponse
Odpowiedź = httpresponse (ścieżka, content_type = mime_type)
# Ustaw nagłówek HTTP do wysyłania do przeglądarki
Odpowiedź ['content-disposition'] = "załącznik; nazwa pliku = % s" % nazwa pliku
# Zwróć wartość odpowiedzi
Odpowiedź powrotna

Teraz otwórz URL.py Plik z projektu Django i zaktualizuj plik następującym skryptem. Plik tekstowy pobranie, jeśli ścieżka, 'pobierać/' jest używany po podstawowym adresie URL.

URL.py

# Moduł ścieżki importu
z Django.URL ścieżki importu
# Importuj widoki
Z Pobrania Appp Import Views
# Ustaw ścieżkę do pobrania
urlpatterns = [
ścieżka („Pobierz/”, widoki.pobieranie pliku),
]

Otwórz przeglądarkę i wykonaj następujący adres URL, który otworzy okno dialogowe Pobierz dla użytkownika.

http: // localhost: 8000/pobierz

Plik zostanie pobrany, jeśli użytkownik kliknie OK przycisk po wybraniu Zapisz plik opcja.

Pobierz plik PDF za pomocą szablonu:

Szablon będzie musiał utworzyć, jeśli chcesz dodać opcję pobierania za pomocą linku do pobrania. Utwórz plik HTML o nazwie plik.html z następującym skryptem, aby wyświetlić link do pobrania w przeglądarce, aby pobrać plik PDF. Według hiperłącza używanego w skrypcie pobranie Por.PDF plik.

plik.html


Pobieranie pliku



Pobierz plik za pomocą Django


ściągnij PDF


Utwórz inny plik widoku o nazwie Widoki2.py z następującym skryptem. pobierz_pdf_file () Funkcja została zdefiniowana w skrypcie, aby pobrać plik za pomocą linku do pobrania. Nazwa pliku zostanie przekazana jako druga wartość argumentu tej funkcji. Plik został otwarty do odczytu w trybie binarnym dla pliku PDF. Jeśli wartość Nazwa pliku Argument jest pusty, potem plik.html Plik zostanie wyświetlony w przeglądarce, aby wyświetlić link do pobrania.

Widoki2.py

# Importuj moduł mimetypów
Import mimetypów
# Importuj moduł OS
Import OS
# Importuj moduł httpresponse
z Django.http.Odpowiedź Import Httpresponse
# Importuj moduł renderowania
z Django.KRÓTKI IMPORTOWANE RENDER
# Zdefiniuj funkcję, aby pobrać plik PDF za pomocą szablonu
def pobieranie_pdf_file (żądanie, nazwa pliku = ”):
Jeśli nazwa pliku != ":
# Zdefiniuj katalog bazowy projektu Django
Base_dir = OS.ścieżka.Dirname (OS.ścieżka.Dirname (OS.ścieżka.Abspath (__ plik__))))
# Zdefiniuj pełną ścieżkę pliku
filepath = base_dir + '/downloadApp/files/' + nazwa pliku
# Otwórz plik do odczytania treści
ścieżka = otwarte (FilePath, „rb”)
# Ustaw typ MIME
MIME_TYPE, _ = mimetypy.haad_type (FilePath)
# Ustaw wartość zwracania httpresponse
Odpowiedź = httpresponse (ścieżka, content_type = mime_type)
# Ustaw nagłówek HTTP do wysyłania do przeglądarki
Odpowiedź ['content-disposition'] = "załącznik; nazwa pliku = % s" % nazwa pliku
# Zwróć wartość odpowiedzi
Odpowiedź powrotna
w przeciwnym razie:
# Załaduj szablon
return render (żądanie, „plik.html ')

Zaktualizować URL.py Plik z następującym skryptem, aby pobrać konkretny plik PDF za pomocą linku do pobrania.

URL.py

# Moduł ścieżki importu
z Django.URL ścieżki importu
# Importuj widoki i widoki2
Z Pobierania Appp Import View, Views2
# Ustaw ścieżkę do pobrania
urlpatterns = [
ścieżka („Pobierz/”, widoki.pobieranie pliku),
ścieżka („DownloadPdf/”, Views2.pobierz_pdf_file, name = 'Download_Pdf_file'),
ścieżka („DownloadPdf //”, Views2.pobierz_pdf_file, name = 'Download_Pdf_file'),
]

Otwórz przeglądarkę i wykonaj następujący adres URL, który wyświetli plik.html W przeglądarce.

http: // localhost: 8000/Downloadpdf

Jeśli użytkownik kliknie link do pobrania, Por.PDF zostanie przekazany jako wartość Nazwa pliku argument.

Jeśli ten plik istnieje w podstawowej lokalizacji aplikacji, pojawi się następujące okno dialogowe. Użytkownik może otworzyć plik w przeglądarce lub przeglądarce dokumentów przed pobraniem lub pobraniem pliku bez otwierania go, wybierając plik zapisu opcja i naciśnięcie OK przycisk.

Wniosek:

Dodanie opcji pobierania plików tekstowych i pdf w aplikacji Django zostało pokazane w tym samouczku za pomocą prostego skryptu. Nowi użytkownicy Django otrzymają pomysł na dodanie opcji pobierania bez i z linkiem do pobrania w aplikacji Django po przeczytaniu tego samouczka.