十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
本篇文章給大家分享的是有關(guān)怎么在Django中利用easy_thumbnails實(shí)現(xiàn)壓縮上傳圖片,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
在Django中壓縮
setting.py
首先,setting中添加
THUMBNAIL_ALIASES = { '': { 'avatar': {'size': (200, 200), 'crop': True}, }, }
size控制要壓縮后的圖片大小
創(chuàng)建模型
eg:
models.py
from easy_thumbnails.fields import ThumbnailerImageField class GoodsImage(models.Model): Img = ThumbnailerImageField(upload_to='images/',blank=True)
ThumbnailerImageField在數(shù)據(jù)庫(kù)中做的事相當(dāng)于models.ImageField,不同的是他會(huì)告訴esay_thumbnails這是一個(gè)要被壓縮的圖片域。(個(gè)人推測(cè))
獲取縮略圖路徑
兩種,一是在模板中,二在視圖中
模板:
views.py
from models import GoodsImage def test(request): goods = GoodsMessage.objects.all().first() # 查到一個(gè)圖片 return render(request,'templates.html',{'img':goods}) # 使用模板
templates.html
{% load thumbnail %} {# 裝載easy_thumbnail #}{# 原圖 #}
{# 壓縮圖 #}
視圖
views.py
from easy_thumbnails.files import get_thumbnailer from models import GoodsImage def test2(request): goods = GoodsImage.objects.all().first() path = get_thumbnailer(goods.Img) print(path) # 注意,這里查到的是url編碼的圖片地址 return HttpResponse(path)
第二種方法,直接查找:
goods = GoodsImage.objects.all().first() goods.Img # 原圖地址 goods.Img['avatar'] # 縮略圖地址 goods.Img['avatar'].url # 經(jīng)url編碼后的縮略圖地址 # avatar是你在setting.py中的縮略圖尺寸名
以上就是怎么在Django中利用easy_thumbnails實(shí)現(xiàn)壓縮上傳圖片,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。