Home >  > Django实战项目三:文件上传与下载

Django实战项目三:文件上传与下载

0

一、环境的搭建
1.利用anaconda的conda create -n upload python=3.6创建一个虚拟环境。
2.在pycharm中新建一个django项目,并选择文件目录。
3.选择刚刚创建的upload虚拟环境。

然后点击“create”,就会开始安装django。

二、创建应用
1.在pycharm中执行"Tools-Run manage.py task" 菜单功能,在下边弹出的窗格中,执行“startapp fronts”新建一个应用。
2.将fronts添加到setting.py的INSTALLED_APPS里面。

三、创建模板文件
1、在template文件夹下面建立一个upload.html文件

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="提交">
</form>

四、配置media文件夹
1、在项目目录下,建立一个media文件夹(与template平级)
2、在settings.py中,加入以下代码

MEDIA_ROOT = os.path.join(BASE_DIR,'media')

五、views.py

from django.http import HttpResponse
from django.conf import settings
import os

# Create your views here.
def upload(request):
    if request.method =="GET":
        return render(request,'upload.html')
    else:
        file = request.FILES.get("file")
        media_root = settings.MEDIA_ROOT
        filepath = os.path.join(media_root,file.name)
        with open(filepath,'wb') as fp:
            for chunk in file.chunks():
                fp.write(chunk)
            return HttpResponse("文件上传成功!")

六、编写urls.py

from fronts import views
path('upload/',views.upload,name='upload')

七、测试效果
1、点击pycharm右上解的向右的小三角形,就会启动服务器。
2、会出现CSRF的错误,需要在upload文件中加入一行 {% csrf_token %}代码。这样就可以正常访问了。

上传成功的文件会放在之前建立的media文件夹中。

八、下载文件代码views.py

from django.http import HttpResponse,FileResponse

def download(request):
    filename = request.GET.get('file')
    filepath = os.path.join(settings.MEDIA_ROOT,filename)
    fp = open(filepath,'rb')
    response = FileResponse(fp)
    response['Content-Type'] = 'image/jpeg'
    response['Content-Disposition'] = 'attachment;filename="%s"'% filename
    return response
    fp.close()

九、修改urls.py

path('download/',views.download,name='download'),

最后访问,就可以看到图片成功下载了。

十、下载zip、rar文件。
下载zip文件,只需要将其中的一行代码改成:

response['Content-Type'] = 'application/zip'

就可以了。

当然,改成rar就可以下载rar文件了。

暧昧帖

本文暂无标签

发表评论

*

*