Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Melayan Fail Boleh Muat Turun di Django Tanpa Menggunakan URL dan Paparan Standard?

Bagaimana untuk Melayan Fail Boleh Muat Turun di Django Tanpa Menggunakan URL dan Paparan Standard?

Barbara Streisand
Lepaskan: 2024-11-28 17:02:10
asal
822 orang telah melayarinya

How to Serve Downloadable Files in Django Without Using Standard URLs and Views?

Menyajikan Fail Boleh Muat Turun dalam Django: Pendekatan Komprehensif

Menyajikan fail boleh dimuat turun dengan selamat adalah keperluan biasa dalam pembangunan web. Django, rangka kerja web popular dalam Python, menyediakan beberapa kaedah untuk memudahkan tugas ini. Satu kaedah sedemikian melibatkan mengaburkan laluan fail untuk menghalang muat turun terus.

Dalam senario ini, format URL yang dikehendaki ialah http://example.com/download/?f=somefile.txt, di mana somefile.txt berada dalam folder rumah/pengguna/fail/ pada pelayan. Timbul persoalan: bagaimana Django boleh menghantar fail untuk dimuat turun tanpa menggunakan URL dan Paparan standard?

Penyelesaian X-Sendfile

Satu penyelesaian yang berkesan adalah dengan menggunakan Modul X-Sendfile. Modul ini memanfaatkan pelayan Apache atau Lighttpd untuk mengendalikan penyajian fail. Django menjana laluan fail atau fail itu sendiri, manakala pelayan menguruskan penghantaran fail sebenar.

Pelaksanaan dengan X-Sendfile

Untuk menyepadukan X-Sendfile dengan Django, ikut langkah berikut:

  1. Konfigurasikan pelayan anda untuk menyokong X-Sendfile.
  2. Dalam paparan Django anda, gunakan kod berikut untuk menyampaikan fail:
from django.utils.encoding import smart_str
from django.http import HttpResponse

response = HttpResponse(mimetype='application/force-download') # mimetype is replaced by content_type for django 1.7
response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(file_name)
response['X-Sendfile'] = smart_str(path_to_file)
# Set 'Content-Length' header if necessary
return response
Salin selepas log masuk

Kod ini memanfaatkan X-Sendfile untuk mewakilkan penyajian fail kepada pelayan, memastikan laluan fail kekal dikaburkan sambil membenarkan pengguna yang dibenarkan memuat turun fail.

Atas ialah kandungan terperinci Bagaimana untuk Melayan Fail Boleh Muat Turun di Django Tanpa Menggunakan URL dan Paparan Standard?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan