当前位置:首页 » Python程序 » Django完成文件上传和下载功能

Django完成文件上传和下载功能

291°c 2021年04月20日 08:07 Python程序 0条评论
  移步手机端

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

文中案例为大伙儿共享了Django下进行文件提交和下载作用的实际编码,供大伙儿参照,具体内容以下

一、文件提交

Views.py

def upload(request):
 if request.method == "POST": # 要求方式为POST时,开展解决
 myFile = request.FILES.get("myfile", None) # 获得提交的文件,如果没有文件,则默认设置为None
 if not myFile:
 return HttpResponse("no files for upload!")
 # destination=open(os.path.join('upload',myFile.name),'wb ')
 destination = open(
 os.path.join("你的文件储放详细地址", myFile.name),
 'wb ') # 开启特殊的文件开展二进制的写实际操作
 for chunk in myFile.chunks(): # 分块载入文件
 destination.write(chunk)
 destination.close()
 return HttpResponse("upload over!")
 else:
 file_list = []
 files = os.listdir('D:\python\Salary management system\django\managementsystem\\file')
 for i in files:
 file_list.append(i)
 return render(request, 'upload.html', {'file_list': file_list})

urls.py

url(r'download/$',views.download),

upload.html

<div class="container-fluid">
 <div class="row">
 <form enctype="multipart/form-data" action="/upload_file/" method="POST">
 <input type="file" name="myfile"/>
 <br/>
 <input type="submit" value="upload"/>
 </form>
 </div>
</div>

 网页页面表明

 Django完成文件上传和下载功能第1张-python学习平台_Python基础教程-雨凡教育

二、文件下载

Views.py

from django.http import HttpResponse,StreamingHttpResponse
from django.conf import settings
def download(request):
 filename = request.GET.get('file')
 filepath = os.path.join(settings.MEDIA_ROOT, filename)
 fp = open(filepath, 'rb')
 response = StreamingHttpResponse(fp)
 # response = FileResponse(fp)
 response['Content-Type'] = 'application/octet-stream'
 response['Content-Disposition'] = 'attachment;filename="%s"' % filename
 return response
 fp.close()

HttpResponse会立即应用迭代器目标,将迭代器目标的內容储存城字符串数组,随后回到给手机客户端,另外增加内存。能够 当文件增大看得出这是一个十分消耗時间和运行内存的全过程。

而StreamingHttpResponse是将文件內容开展流式传输,StreamingHttpResponse在官方网文本文档的表述是:

The StreamingHttpResponse class is used to stream a response from Django to the browser. You might want to do this if generating the response takes too long or uses too much memory.

它是一种十分省时省运行内存的方式。可是由于StreamingHttpResponse的文件传送全过程不断在全部response的全过程中,因此这有可能会减少网络服务器的特性。

urls.py

url(r'^upload',views.upload),

之上便是文中的所有内容,期待对大伙儿的学习培训有一定的协助,也期待大伙儿多多的适用大家。

欢迎阅读本文,希望本文对您有所帮助!

本文链接:http://www.cqrxzs.com/3845.html

版权声明:本文为原创文章,版权归 雨凡教育 所有,欢迎分享本文,转载请保留出处!

百度推荐获取地址:http://tuijian.baidu.com/,百度推荐可能会有一些未知的问题,使用中有任何问题请直接联系百度官方客服!

评论(0) 赞助本站

发表评论:


【顶】 【踩】 【好】 【懵】 【赞】 【表情】

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

推荐阅读
04月21日

Python应用tkinter模块完成推箱子游戏

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 4878次

前段时间用C语言做了个字符版的推箱子,着实是比较简陋。正好最近用到了Python,然后想着用Python做一个图形界面的推箱子。这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找了一大堆教材,最后选择了tkinter,没什么特别的原因,只是因为网上说的多。 接下来就来和大家分享一下,主要分享两点,第一就是这个程序的实现过程,第二点就是我在编写过程中的一些思考。 一、介绍 开发语言:Python 3.7 开发工具:PyCharm 2019.2.4 日期:2019年10月2...

04月20日

python内置函数sorted()用法深入分析

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 340次

文中案例叙述了python内置函数sorted()用法。共享给大伙儿供大伙儿参照,实际以下: 列表目标出示了sort()方式适用原地排序,而内置函数sorted()不兼容原地实际操作仅仅回到新的列表,并不对原列表开展一切改动。sorted()方式能够 对列表、元组、词典、range目标等开展排序。列表的sort()方式和内置函数sorted()都适用key主要参数完成繁杂排序规定。 #应用key来特定排序根据,先按名字降序排序,名字同样的按年纪降序排序 >>> person...

04月20日

python生成器推导式用法简易示例

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 343次

文中案例叙述了python生成器推导式用法。共享给大伙儿供大伙儿参照,实际以下: 1.生成器推导式是继列表推导式后的有一中python推导式,他比列表推导式速率更快,占有的运行内存也越来越少。 2.应用生成器目标时,能够 依据必须将他转换为目录或是元组,还可以是哟个生成器对像__next__()方式或内嵌涵数next()开展遍历,其具备可塑性求值的特性,开展一次遍历后便不可以再度方向內部原素,即浏览一次立刻清除生成器目标 >>> g = ((i 2)**2 for i in...

04月20日

Django完成文件网页上传

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 316次

文中案例为大伙儿共享了Django完成文件提交下载的实际编码,供大伙儿参照,主要内容以下 一、django完成文件下载 (1)、后台管理插口 假如从服务器立即将文件途径发送给电脑浏览器,一般文件能够 立即下载,而照片,html,css和pdf格式等文件会立即表明,因此解决方案便是在头文件中让文件流载入电脑硬盘. ①、非常简单的文件下载作用的完成,立即将文件流放进HttpResponse对象就可以 def file_download(request): # do something......

04月20日

应用go在mangodb中开展CRUD操作

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 309次

我还在学习培训go语言表达以前,在对数据库开展CRUD的操作基本上是用java和sql来对mysql数据库开展操作,可是到见习中公司业务全是用的是mangodb,根据一段学习时间后,我有了一些获得。 概述关系型数据库,非关系型数据库 关系型数据库:指选用了关系实体模型来机构数据信息的数据库。 关系实体模型指的便是二维表格实体模型,而一个关系型数据库便是由二维表以及中间的联络所构成的一个数据组织 非关系型数据库 非关系型数据库:指非关系型的,分布式系统的,且一般不确保遵照 ACID 标准的数据...

04月20日

ubuntu上安装python的实例方法

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 298次

怎样在ubuntu安装python? python在ubuntu下有几种安装方式: ● 根据ubuntu官方网的apt工具包安装 ● 根据PPA(Personal Package Archive) 的apt工具包安装 ● 根据编译程序python源码安装 根据ubuntu官方网的apt工具包安装 sudo apt-get install python2.7 sudo apt-get install python3.4 安装进行后,可以用下边的指令开展确定 [email protect...

04月20日

Python3 无反复字符的最多子串的完成

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 284次

题型: 给出一个字符串,你要找到在其中不带有反复字符的 最多子串 的长度。 示例: 示例 1: 键入: “abcabcbb” 输出: 3 表述: 由于无反复字符的最多子串是 “abc”,因此其长度为 3。 示例 2: 键入: “bbbbb” 输出: 1 表述: 由于无反复字符的最多子串是 “b”,因此其长度为 1。 示例 3: 键入: “pwwkew” 输出: 3 表述: 由于无反复字符的最多子串是 “wke”,因此其长度为 3。 一定要注意,你的答案务必是 子串 的长度,“pwke...

04月20日

Django完成文件上传和下载功能

发布 : | 分类 : Python程序 | 评论 : 0人 | 浏览 : 291次

文中案例为大伙儿共享了Django下进行文件提交和下载作用的实际编码,供大伙儿参照,具体内容以下 一、文件提交 Views.py def upload(request): if request.method == "POST": # 要求方式为POST时,开展解决 myFile = request.FILES.get("myfile", None) # 获得提交的文件,如果没有文件,则默认设置为None if not myFile: return HttpResponse("no f...

您好,欢迎到访网站!
  查看权限