最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django實(shí)現(xiàn)文件上傳和下載功能

 更新時(shí)間:2019年10月06日 11:17:07   作者:python_voice  
這篇文章主要為大家詳細(xì)介紹了Django下完成文件上傳和下載功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Django下完成文件上傳和下載功能的具體代碼,供大家參考,具體內(nèi)容如下

一、文件上傳

Views.py

def upload(request):
 if request.method == "POST": # 請(qǐng)求方法為POST時(shí),進(jìn)行處理
 myFile = request.FILES.get("myfile", None) # 獲取上傳的文件,如果沒有文件,則默認(rèn)為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+') # 打開特定的文件進(jìn)行二進(jìn)制的寫操作
 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>

 頁面顯示

 

二、文件下載

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會(huì)直接使用迭代器對(duì)象,將迭代器對(duì)象的內(nèi)容存儲(chǔ)城字符串,然后返回給客戶端,同時(shí)釋放內(nèi)存??梢援?dāng)文件變大看出這是一個(gè)非常耗費(fèi)時(shí)間和內(nèi)存的過程。

而StreamingHttpResponse是將文件內(nèi)容進(jìn)行流式傳輸,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.

這是一種非常省時(shí)省內(nèi)存的方法。但是因?yàn)镾treamingHttpResponse的文件傳輸過程持續(xù)在整個(gè)response的過程中,所以這有可能會(huì)降低服務(wù)器的性能。

urls.py

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python GUI庫圖形界面開發(fā)之PyQt5下拉列表框控件QComboBox詳細(xì)使用方法與實(shí)例

    python GUI庫圖形界面開發(fā)之PyQt5下拉列表框控件QComboBox詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5下拉列表框控件QComboBox詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-02-02
  • Python函數(shù)中定義參數(shù)的四種方式

    Python函數(shù)中定義參數(shù)的四種方式

    有些時(shí)候看到函數(shù)傳參數(shù)的時(shí)候參數(shù)前面加一個(gè)星號(hào)*或者兩個(gè)星號(hào)**,這是什么意思? 下面來總結(jié)下
    2014-11-11
  • Python3中延時(shí)變量和 free_list鏈表的區(qū)別解析

    Python3中延時(shí)變量和 free_list鏈表的區(qū)別解析

    這篇文章主要介紹了Python3中延時(shí)變量和 free_list鏈表的區(qū)別,在Python3中,"延時(shí)變量" 和 "free_list鏈表" 是兩個(gè)不同的概念,他們之間沒有直接聯(lián)系,本文給實(shí)例相結(jié)合給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 將tf.batch_matmul替換成tf.matmul的實(shí)現(xiàn)

    將tf.batch_matmul替換成tf.matmul的實(shí)現(xiàn)

    這篇文章主要介紹了將tf.batch_matmul替換成tf.matmul的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 利用python對(duì)月餅數(shù)據(jù)進(jìn)行可視化(看看哪家最劃算)

    利用python對(duì)月餅數(shù)據(jù)進(jìn)行可視化(看看哪家最劃算)

    通過python對(duì)數(shù)據(jù)進(jìn)行可視化展示,可直觀地展示數(shù)據(jù)之間的關(guān)系,為用戶提供更多的信息,這篇文章主要給大家介紹了關(guān)于利用python對(duì)月餅數(shù)據(jù)進(jìn)行可視化的相關(guān)資料,看看哪家最劃算,需要的朋友可以參考下
    2022-09-09
  • python 快速把超大txt文件轉(zhuǎn)存為csv的實(shí)例

    python 快速把超大txt文件轉(zhuǎn)存為csv的實(shí)例

    今天小編就為大家分享一篇python 快速把超大txt文件轉(zhuǎn)存為csv的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python 表格打印代碼實(shí)例解析

    python 表格打印代碼實(shí)例解析

    這篇文章主要介紹了python 表格打印代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 詳解如何在pyqt中通過OpenCV實(shí)現(xiàn)對(duì)窗口的透視變換

    詳解如何在pyqt中通過OpenCV實(shí)現(xiàn)對(duì)窗口的透視變換

    這篇文章主要介紹了如何在pyqt中通過OpenCV實(shí)現(xiàn)對(duì)窗口的透視變換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python的metaclass使用小結(jié)

    python的metaclass使用小結(jié)

    python中的metaclass可謂熟悉而又陌生,自己開發(fā)時(shí)很少用,閱讀源碼時(shí)卻經(jīng)常遇到,那么到底什么是metaclass呢?何時(shí)使用metaclass呢?這篇文章主要介紹了python的metaclass,需要的朋友可以參考下
    2024-01-01
  • Python操作MongoDB數(shù)據(jù)庫的方法示例

    Python操作MongoDB數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Python操作MongoDB數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式分析了Python命令行模式下操作MongoDB數(shù)據(jù)庫實(shí)現(xiàn)連接、查找、刪除、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

龙山县| 鸡泽县| 乐安县| 平邑县| 广河县| 潞城市| 济阳县| 泽普县| 枣强县| 龙门县| 加查县| 文水县| 兰溪市| 雷州市| 湖南省| 忻城县| 思南县| 喜德县| 阳春市| 黄冈市| 鹰潭市| 金溪县| 建瓯市| 蚌埠市| 武城县| 偏关县| 吉木萨尔县| 武定县| 城固县| 弥渡县| 沂水县| 车险| 苗栗市| 延庆县| 张家界市| 泌阳县| 高碑店市| 阳西县| 娄烦县| 扶沟县| 浑源县|