Django

Jak stáhnout soubor v Django?

Jak stáhnout soubor v Django?
Možnost stažení je obecným požadavkem pro všechny webové stránky, jako je online kniha, bezplatný aplikační software, hry zdarma atd. Uživatelé webu mohou stáhnout potřebné soubory do svého zařízení, pokud je pro web implementována funkce stahování. Soubor lze stáhnout po provedení konkrétní adresy URL nebo kliknutí na odkaz ke stažení a získání povolení od uživatele. Způsoby stažení textového souboru bez odkazu na stažení a souboru PDF pomocí odkazu pro stažení v aplikaci Django se zobrazí v tomto výukovém programu.

Předpoklady:

Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly.

  1. Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
  2. Vytvořte projekt Django
  3. Spusťte server Django a zkontrolujte, zda server funguje správně nebo ne.

Nastavení aplikace Django:

Spuštěním následujícího příkazu vytvořte aplikaci Django s názvem downloadapp. $ python3 spravovat.py startapp downloadapp

Spuštěním následujícího příkazu vytvořte uživatele pro přístup k databázi Django. Pokud jste uživatele vytvořili dříve, nemusíte tento příkaz spouštět.

$ python3 spravovat.py vytvoří superuživatele

Přidejte název aplikace do INSTALLED_APP část nastavení.py soubor.

INSTALLED_APPS = [

'downloadapp'
]

Vytvořte složku s názvem šablony uvnitř downloadapp složku a nastavte šablony umístění aplikace v ŠABLONY část nastavení.py soubor.

TEMPLATES = [

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

Stáhnout textový soubor:

Upravte pohledy.py soubor, který je uvnitř downloadapp složka s následujícím skriptem. The stáhnout soubor() funkce stáhne textový soubor s názvem text.txt pro konkrétní cestu URL. Soubor se otevřel ke čtení na začátku skriptu. Pro stažení souboru byly nastaveny informace o typu mime a hlavičce.

pohledy.py

# Importujte modul mimetypů
importovat mimetypy
# import os modulu
import os
# Importujte modul HttpResponse
od djanga.http.import odpovědí HttpResponse
def download_file (požadavek):
# Definujte základní adresář projektu Django
BASE_DIR = os.cesta.dirname (os.cesta.dirname (os.cesta.abspath (__ file__)))
# Definujte název textového souboru
název souboru = 'test.txt '
# Definujte úplnou cestu k souboru
cesta_souboru = BASE_DIR + '/ downloadapp / Soubory /' + název_souboru
# Otevřete soubor pro čtení obsahu
path = open (cesta_souboru, 'r')
# Nastavit typ mim
mime_type, _ = mimetypes.guess_type (cesta k souboru)
# Nastavte návratovou hodnotu HttpResponse
response = HttpResponse (cesta, content_type = mime_type)
# Nastavte HTTP hlavičku pro odeslání do prohlížeče
response ['Content-Disposition'] = "příloha; název souboru =% s"% název souboru
# Vrátit hodnotu odpovědi
návratová odpověď

Nyní otevřete adresy URL.py soubor z projektu Django a aktualizujte soubor následujícím skriptem. Textový soubor se stáhne, pokud je cesta, 'stažení/' se používá za základní adresou URL.

adresy URL.py

# Importovat modul cesty
od djanga.cesta pro import adres URL
# Import pohledů
ze zobrazení importu downloadapp
# Nastavit cestu ke stažení
urlpatterns = [
cesta ('download /', pohledy.stáhnout soubor),
]

Otevřete prohlížeč a proveďte následující adresu URL, která uživateli otevře dialogové okno pro stažení.

http: // localhost: 8000 / stáhnout

Soubor se stáhne, pokud uživatel klikne na ikonu OK tlačítko po výběru Uložení souboru volba.

Stáhnout soubor PDF pomocí šablony:

Pokud chcete přidat možnost stažení pomocí odkazu pro stažení, bude nutné vytvořit šablonu. Vytvořte soubor HTML s názvem soubor.html s následujícím skriptem pro zobrazení odkazu ke stažení v prohlížeči ke stažení souboru PDF. Podle hypertextového odkazu, který je použit ve skriptu, se stáhne CF.pdf soubor.

soubor.html


Stáhnout soubor



Stáhnout soubor pomocí Django


Stáhnout PDF


Vytvořte jiný soubor pohledu s názvem zobrazení2.py s následujícím skriptem. The download_pdf_file () ve skriptu byla definována funkce pro stažení souboru pomocí odkazu pro stažení. Název souboru bude předán jako druhá hodnota argumentu této funkce. Soubor se otevřel pro čtení v binárním režimu pro soubor PDF. Pokud je hodnota název souboru argument je prázdný, pak soubor.html soubor se zobrazí v prohlížeči a zobrazí odkaz ke stažení.

zobrazení2.py

# Importujte modul mimetypů
importovat mimetypy
# import os modulu
import os
# Importujte modul HttpResponse
od djanga.http.import odpovědí HttpResponse
# Import modulu vykreslení
od djanga.zástupce importovat vykreslení
# Definujte funkci pro stažení souboru PDF pomocí šablony
def download_pdf_file (požadavek, název souboru = "):
pokud název souboru != ":
# Definujte základní adresář projektu Django
BASE_DIR = os.cesta.dirname (os.cesta.dirname (os.cesta.abspath (__ file__)))
# Definujte úplnou cestu k souboru
cesta_souboru = BASE_DIR + '/ downloadapp / Soubory /' + název_souboru
# Otevřete soubor pro čtení obsahu
path = open (cesta k souboru, 'rb')
# Nastavit typ mim
mime_type, _ = mimetypes.guess_type (cesta k souboru)
# Nastavte návratovou hodnotu HttpResponse
response = HttpResponse (cesta, content_type = mime_type)
# Nastavte HTTP hlavičku pro odeslání do prohlížeče
response ['Content-Disposition'] = "příloha; název souboru =% s"% název souboru
# Vrátit hodnotu odpovědi
návratová odpověď
jiný:
# Načtěte šablonu
vrátit vykreslení (požadavek, 'soubor.html ')

Aktualizujte adresy URL.py soubor s následujícím skriptem ke stažení konkrétního souboru PDF pomocí odkazu ke stažení.

adresy URL.py

# Importovat modul cesty
od djanga.cesta pro import adres URL
# Import pohledů a pohledů2
z downloadapp import pohledů, views2
# Nastavit cestu ke stažení
urlpatterns = [
cesta ('download /', pohledy.stáhnout soubor),
cesta ('downloadpdf /', views2.download_pdf_file, name = 'download_pdf_file'),
cesta ('downloadpdf //', views2.download_pdf_file, name = 'download_pdf_file'),
]

Otevřete prohlížeč a proveďte následující adresu URL, která zobrazí soubor.html v prohlížeči.

http: // localhost: 8000 / downloadpdf

Pokud uživatel klikne na odkaz ke stažení, CF.pdf bude předáno jako hodnota název souboru argument.

Pokud tento soubor existuje v základním umístění aplikace, zobrazí se následující dialogové okno. Uživatel může soubor stáhnout v prohlížeči nebo v prohlížeči dokumentů před stažením nebo stáhnout soubor přímo, aniž by jej otevřel výběrem uložte soubor možnost a stisknutím tlačítka OK knoflík.

Závěr:

Přidání možnosti stažení textových a PDF souborů v aplikaci Django bylo v tomto kurzu ukázáno pomocí jednoduchého skriptu. Noví uživatelé Django získají nápad přečíst si možnost stažení bez a s odkazem ke stažení v aplikaci Django po přečtení tohoto tutoriálu.

Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...
Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...