让我先说我在这方面花了很多精力,任何投入对我来说都非常有价值。现在,我的问题:使用Django:如何提供文件下载?
我有什么工作:我的网站提供了一个简单的界面,供用户上传文件,他们将被给予一个关键。该文件被保存到服务器,密钥是使用现代,安全的加密算法生成的。这些细节对于手头的问题并不重要。
我想实现的内容:在下载页面上,用户可以输入密钥并将文件下载到他们的计算机上。想要知道的是如何为用户提供下载上传文件的能力。简而言之,我只想让用户在MEDIA_ROOT文件夹下载一个文件。
我使用基于类的意见,所以我的网址是:
urls.py
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.conf import settings
from fileupload.views import FileDownloadView, GetFileView
urlpatterns = patterns('',
url(r'^key/?$', FileDownloadView.as_view(), name='getkey'),
url(r'^download/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}, GetFileView.as_view()),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
请为我提供,我应该在我的观点使用何种功能的基本思路实际上下载文件。我仍在开发中,所以我想利用Django提供文件的能力,而不是Apache的。如果我投入生产,我会考虑其他选择。无论我需要发布什么代码,我都可以发布。
谢谢!
为什么不使用nginx来处理所有静态文件? –
你好,我很抱歉,我忘了提及我正在使用Apache。我添加了一个编辑来阐明我想利用Django提供文件的能力。 – Chuck