Django 使用easy_thumbnails壓縮上傳的圖片方法
easy_thumbnails:A powerful, yet easy to implement thumbnailing application for Django 1.4+
安裝
pip install easy_thumbanils
在你的項(xiàng)目中配置
setting.py INSTALLED_APPS中添加 ‘easy_thumbanils'
如果Django1.7及以上,運(yùn)行python manage.py migrate easy_thumbnails
否則,運(yùn)行python manage.py syncdb
在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ù)庫中做的事相當(dāng)于models.ImageField,不同的是他會告訴esay_thumbnails這是一個要被壓縮的圖片域。(個人推測)
獲取縮略圖路徑
兩種,一是在模板中,二在視圖中
模板:
views.py
from models import GoodsImage
def test(request):
goods = GoodsMessage.objects.all().first() # 查到一個圖片
return render(request,'templates.html',{'img':goods}) # 使用模板
templates.html
{% load thumbnail %} {# 裝載easy_thumbnail #}
<img src="/media/{{ img.Img }}"> {# 原圖 #}
<img src="/media/{{ img.Img.avatar.url }}"> {# 壓縮圖 #}
視圖
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中的縮略圖尺寸名
根據(jù)我的觀察,只有當(dāng)?shù)谝淮问褂?GoodsImage.object.*()這種查詢的時候,才會生成縮略圖,并非在保存原圖時就生成了。
此外,使用時候發(fā)現(xiàn)當(dāng)圖片表一條記錄被刪除后,thumbanils的數(shù)據(jù)表記錄不會刪除,不過在使用中未發(fā)現(xiàn)異常
以上這篇Django 使用easy_thumbnails壓縮上傳的圖片方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python打包生成的exe文件運(yùn)行時提示缺少模塊的解決方法
今天小編就為大家分享一篇python打包生成的exe文件運(yùn)行時提示缺少模塊的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
python將html轉(zhuǎn)成PDF的實(shí)現(xiàn)代碼(包含中文)
python將html轉(zhuǎn)成PDF的實(shí)現(xiàn)代碼,需要用到xhtml2pdf和微軟雅黑字體,需要的朋友可以參考下2013-03-03
PyCharm2020.1.1與Python3.7.7的安裝教程圖文詳解
這篇文章主要介紹了PyCharm2020.1.1與Python3.7.7的安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Python實(shí)現(xiàn)PyPDF2處理PDF文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)PyPDF2處理PDF文件的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Python數(shù)據(jù)結(jié)構(gòu)之樹的全面解讀
數(shù)據(jù)結(jié)構(gòu)中有很多樹的結(jié)構(gòu),其中包括二叉樹、二叉搜索樹、2-3樹、紅黑樹等等。本文中對數(shù)據(jù)結(jié)構(gòu)中常見的樹邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)進(jìn)行了匯總,不求嚴(yán)格精準(zhǔn),但求簡單易懂2021-11-11
一維信號小波去噪原理解析及python實(shí)現(xiàn)方式
這篇文章主要介紹了一維信號小波去噪原理解析及python實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實(shí)例
今天小編就為大家分享一篇python使用循環(huán)打印所有三位數(shù)水仙花數(shù)的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

