日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django框架 from django.core.files.uploadedfile import InMemoryUploadedFile

發布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django框架 from django.core.files.uploadedfile import InMemoryUploadedFile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

作者:朱濤
鏈接:https://www.zhihu.com/question/23332111/answer/24239612
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。

model中一般會聲明為FileField或者ImageField(如果是圖片),使用multipart的form進行上傳,上傳后uploaded_file = request.FILES["file_name"]中會保存相應的文件數據,其中uploaded_file是InMemoryUploadedFile類型(

from django.core.files.uploadedfile import InMemoryUploadedFile),對于uploaded_file可以進行額外的處理(如使用PIL進行resize,保存為thumbnail等),而InMemoryUploadedFile可以直接賦值給FileField/ImageField,model save時相應的路徑就可以與model中聲明的關聯起來。

?

我之前寫的一個將上傳的image進行處理生成thumbnail,并且返回InMemoryUploadedFile的函數可以參考:

?

def get_thumbnail(orig, width=200, height=200):"""get the thumbnail of orig@return: InMemoryUploadedFile which can be assigned to ImageField"""quality = "keep"file_suffix = orig.name.split(".")[-1]filename = orig.nameif file_suffix not in ["jpg", "jpeg"]:filename = "%s.jpg" % orig.name[:-(len(file_suffix)+1)]quality = 95im = Image.open(orig)size = (width, height)thumb = imthumb.thumbnail(size, Image.ANTIALIAS)thumb_io = StringIO.StringIO()thumb.save(thumb_io, format="JPEG", quality=quality)thumb_file = InMemoryUploadedFile(thumb_io, None, filename, 'image/jpeg',thumb_io.len, None)return thumb_file

?

使用時:

orig_image = request.FILES.get("photo") thumbnail = get_thumbnail(orig_image) user.photo = orig_image user.thumbnail = thumbnail user.save()

轉載于:https://my.oschina.net/u/2603728/blog/784872

總結

以上是生活随笔為你收集整理的Django框架 from django.core.files.uploadedfile import InMemoryUploadedFile的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。