Django鎬庝箞瀹炵幇鏂囦欢涓嬭浇鍔熻兘
瑕佸疄鐜版枃浠朵笅杞藉姛鑳斤紝鍙互閫氳繃浠ヤ笅姝ラ鍦―jango涓疄鐜帮細
- 鍦╲iews.py鏂囦欢涓垱寤轰竴涓鍥惧嚱鏁帮紝鐢ㄤ簬澶勭悊鏂囦欢涓嬭浇璇锋眰銆?/li>
from django.http import FileResponse
import os
def download_file(request, file_path):
file_path = os.path.join(settings.MEDIA_ROOT, file_path)
if os.path.exists(file_path):
with open(file_path, 'rb') as f:
response = FileResponse(f)
response['Content-Disposition'] = 'attachment; filename="%s"' % os.path.basename(file_path)
return response
else:
# 鏂囦欢涓嶅瓨鍦ㄧ殑澶勭悊閫昏緫
return HttpResponse("File not found", status=404)
- 鍦╱rls.py鏂囦欢涓厤缃瑙嗗浘鍑芥暟鐨刄RL璺敱銆?/li>
from django.urls import path
from . import views
urlpatterns = [
path('download/<str:file_path>/', views.download_file, name='download_file'),
]
- 鍦ㄦā鏉挎枃浠朵腑娣诲姞涓嬭浇閾炬帴锛岃皟鐢ㄨ瑙嗗浘鍑芥暟銆?/li>
<a href="{% url 'download_file' file_path %}">Download File</a>
杩欐牱锛岀敤鎴疯闂閾炬帴鏃跺氨浼氳Е鍙戞枃浠朵笅杞藉姛鑳斤紝娴忚鍣ㄤ細寮瑰嚭鏂囦欢涓嬭浇瀵硅瘽妗嗭紝鐢ㄦ埛鍙互閫夋嫨淇濆瓨鏂囦欢鎴栫洿鎺ユ墦寮€鏂囦欢銆?/p>