如何使任何Django模型的文件可下载?

如何使任何Django模型的文件可下载?

您可以使用django-downloadview软件包将项目中包含的任何文件变为可下载文件。您可以在服务器上托管这些文件。

在本文中,我们将看到如何使我们的Django项目中的文件可下载。这将是一个有趣的话题,您会喜欢它。

首先,安装包:−

pip install django-downloadview

现在创建一个Django项目和应用程序。设置URL并进行一些基本操作,例如将应用程序添加到INSTALLED_APPS中。还需要在 settings.py 中设置MEDIA_ROOT和MEDIA_URL。

阅读更多:Python 教程

示例

models.py 中添加以下行:−

from django.db import models

# 创建你的models在此处。
class Data(models.Model):
   file=models.FileField(upload_to='myfiles/',blank=True)

在此处,我们创建了一个模型,该模型将保存上传文件的文件引用。为此模型创建一些假数据。

urls.py 中−

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django_downloadview import ObjectDownloadView
from .models import Data
download = ObjectDownloadView.as_view(model=Data, file_field=
'file')

urlpatterns = [
   path('', views.home,name="home"),
   path('download//', download, name="default"),

]
urlpatterns += static(settings.MEDIA_URL,
                              document_root=settings.MEDIA_ROOT)

我们创建了两个URL端点,一个用于呈现前端,另一个用于具有模型downloadview。 ObjectDownloadView是一个实例,它采用我们要主持的文件的模型,并定义将保存该文件的字段。

views.py 中−

def home(request):
   return render(request,'home.html')

在此处,我们呈现了我们的前端html

home.html 中,添加以下代码−

<!DOCTYPE html>
<html>
   <head>
      <title>
         TUT
      </title>
   </head>
   <body>
      <h2>HI</h2>
      <a href="http://127.0.0.1:8000/download/1/">
Download</a> // '1'是我们的“Data”模型的虚拟数据的ID
   </body>
</html>

在此处,我们引用了一个文件,该文件是我们创建的虚拟数据。 ‘1’是我们的模型实例的 id ,其中将存储该文件。

您可以使链接动态化,但是在此处,我们希望将其保持在基本级别。

输出

如何使任何Django模型的文件可下载?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程