Django

Cara Mengunduh File di Django?

Cara Mengunduh File di Django?
Opsi unduhan adalah persyaratan umum untuk situs web apa pun seperti buku online, perangkat lunak aplikasi gratis, permainan gratis, dll. Pengguna situs dapat mengunduh file yang diperlukan di perangkat mereka jika fitur unduhan diterapkan untuk situs. File dapat diunduh setelah menjalankan URL tertentu atau mengklik tautan unduhan dan mendapatkan izin dari pengguna. Cara mengunduh file teks tanpa tautan unduhan apa pun dan file PDF menggunakan tautan unduhan di aplikasi Django akan ditampilkan dalam tutorial ini.

Prasyarat:

Sebelum mempraktikkan skrip tutorial ini, Anda harus menyelesaikan tugas-tugas berikut:.

  1. Instal Django versi 3+ di Ubuntu 20+ (lebih disukai)
  2. Buat proyek Django
  3. Jalankan server Django untuk memeriksa server bekerja dengan benar atau tidak.

Siapkan Aplikasi Django:

Jalankan perintah berikut untuk membuat aplikasi Django bernama unduh aplikasi. $ python3 kelola.py mulai aplikasi unduh aplikasi

Jalankan perintah berikut untuk membuat pengguna untuk mengakses database Django. Jika Anda telah membuat pengguna sebelumnya, Anda tidak perlu menjalankan perintah.

$ python3 kelola.py buat pengguna super

Tambahkan nama aplikasi di INSTALLED_APP bagian dari pengaturan.py mengajukan.

INSTALLED_APPS = [

'unduh aplikasi'
]

Buat folder bernama template di dalam unduh aplikasi folder dan atur template lokasi aplikasi di TEMPLATE bagian dari pengaturan.py mengajukan.

TEMPLATE = [

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

Unduh File Teks:

Ubah dilihat.py file yang ada di dalam unduh aplikasi folder dengan skrip berikut:. Itu Unduh berkas() fungsi akan mengunduh file teks bernama teks.txt untuk jalur URL tertentu. File telah dibuka untuk dibaca di awal skrip. Jenis mime dan informasi header telah diatur untuk mengunduh file.

dilihat.py

# Impor modul mimetypes
impor mimetype
# impor modul os
impor os
# Impor modul HttpResponse
dari django.http.tanggapan impor HttpResponse
def download_file(permintaan):
# Tentukan direktori basis proyek Django
BASE_DIR = os.jalan.dirname(os.jalan.dirname(os.jalan.abspath(__file__)))
# Tentukan nama file teks
nama file = 'tes.txt'
# Tentukan jalur file lengkap
filepath = BASE_DIR + '/downloadapp/Files/' + nama file
# Buka file untuk membaca konten
path = buka(filepath, 'r')
# Setel jenis pantomim
mime_type, _ = mimetypes.tebak_type(path file)
# Tetapkan nilai pengembalian HttpResponse
respon = HttpResponse(jalur, content_type=mime_type)
# Atur tajuk HTTP untuk mengirim ke browser
response['Content-Disposition'] = "lampiran; nama file=%s" % nama file
# Kembalikan nilai respons
balasan balasan

Sekarang, buka url.py file dari proyek Django dan perbarui file dengan skrip berikut:. File teks akan diunduh jika jalurnya, 'unduh/' digunakan setelah URL dasar.

url.py

# Modul jalur impor
dari django.jalur impor url
# Impor tampilan
dari tampilan impor aplikasi unduh
# Tetapkan jalur untuk mengunduh
pola url = [
path('unduh/', tampilan.Unduh berkas),
]

Buka browser dan jalankan URL berikut yang akan membuka kotak dialog unduhan untuk pengguna.

http://localhost:8000/download

File akan diunduh jika pengguna mengklik baik tombol setelah memilih Menyimpan file pilihan.

Unduh File PDF Menggunakan Template:

Template akan diminta untuk dibuat jika Anda ingin menambahkan opsi unduhan dengan tautan unduhan. Buat file HTML bernama mengajukan.html dengan skrip berikut untuk menampilkan tautan unduhan di browser untuk mengunduh file PDF. Menurut hyperlink yang digunakan dalam skrip akan mengunduh CF.pdf mengajukan.

mengajukan.html


Unduh berkas



Unduh File menggunakan Django


Unduh PDF


Buat file tampilan lain bernama dilihat2.py dengan skrip berikut. Itu unduh_pdf_file() fungsi telah didefinisikan dalam skrip untuk mengunduh file menggunakan tautan unduhan. Nama file akan diteruskan sebagai nilai argumen kedua dari fungsi ini. File telah dibuka untuk dibaca dalam mode biner untuk file PDF. Jika nilai nama file argumen kosong, maka mengajukan.html file akan ditampilkan di browser untuk menunjukkan tautan unduhan.

dilihat2.py

# Impor modul mimetypes
impor mimetype
# impor modul os
impor os
# Impor modul HttpResponse
dari django.http.tanggapan impor HttpResponse
# Impor modul render
dari django.pintasan impor render
# Tentukan fungsi untuk mengunduh file pdf menggunakan template
def download_pdf_file(permintaan, namafile="):
jika nama file != ":
# Tentukan direktori basis proyek Django
BASE_DIR = os.jalan.dirname(os.jalan.dirname(os.jalan.abspath(__file__)))
# Tentukan jalur file lengkap
filepath = BASE_DIR + '/downloadapp/Files/' + nama file
# Buka file untuk membaca konten
jalur = buka(path file, 'rb')
# Setel jenis pantomim
mime_type, _ = mimetypes.tebak_type(path file)
# Tetapkan nilai pengembalian HttpResponse
respon = HttpResponse(jalur, content_type=mime_type)
# Atur tajuk HTTP untuk mengirim ke browser
response['Content-Disposition'] = "lampiran; nama file=%s" % nama file
# Kembalikan nilai respons
balasan balasan
lain:
# Muat template
kembali render(permintaan, 'file.html')

Perbarui url.py file dengan skrip berikut untuk mengunduh file PDF tertentu menggunakan tautan unduhan.

url.py

# Modul jalur impor
dari django.jalur impor url
# Impor tampilan dan tampilan2
dari tampilan impor aplikasi unduh, tampilan2
# Tetapkan jalur untuk mengunduh
pola url = [
path('unduh/', tampilan.Unduh berkas),
path('downloadpdf/', view2.download_pdf_file, nama='download_pdf_file'),
path('downloadpdf//', view2.download_pdf_file, nama='download_pdf_file'),
]

Buka browser dan jalankan URL berikut yang akan menampilkan mengajukan.html di browser.

http://localhost:8000/downloadpdf

Jika pengguna mengklik tautan unduhan, CF.pdf akan diteruskan sebagai nilai nama file argumen.

Jika file ini ada di lokasi dasar aplikasi, maka kotak dialog berikut akan muncul. Pengguna dapat membuka file di browser atau penampil dokumen sebelum mengunduh atau mengunduh file secara langsung tanpa membukanya dengan memilih Simpan File pilihan dan menekan tombol baik tombol.

Kesimpulan:

Menambahkan opsi pengunduhan untuk file teks dan PDF dalam aplikasi Django ditunjukkan dalam tutorial ini menggunakan skrip sederhana. Pengguna Django baru akan mendapatkan ide untuk menambahkan opsi unduhan tanpa dan dengan tautan unduhan di aplikasi Django setelah membaca tutorial ini.

Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...
OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...