이미지 파일을 대표하는 이미지
- Thumbnail 파일 지정 용이
- 파일 용량 관리 용이
- 파일 분류에 효율적
- 기본적인 Media 파일 사용 설정
models.py
에model
정의settings.py
에 경로 설정urls.py
에path
추가admin.py
에model
등록- migrate 진행
views.py
의 함수 이미지를 사용하도록 수정html
에 전달 받은 이미지 출력
- pip 패키지 설치
$ pip install pillow django-imagekit
- settings.py에 앱 추가
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sites',
...
# Imagekit
'imagekit'
]
- models.py에 model 수정
필요한 모듈 추가
imagekit.models
의 ImageSpecField
함수 이용
source
인자는 이미지 주소, 이미지 크기를 조정하기 위하여
processors
인자에 list
형식으로 ResizeToFill
함수 사용
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill
class Pictures(models.Model):
text = models.TextField()
image = models.ImageField(upload_to="blog_img")
image_thumbnail = ImageSpecField(
source="image", processors=[ResizeToFill(120, 60)]
)
- html에 Thumbnail 띄우기
기존의 이미지를 띄우는 것과 동일
이미지를 띄울땐 뒤에 꼭 .url
을 붙여야한다.
<img src="{{ blog.image_thumbnail.url }}">
확장자 지정
thumbnail = ImageSpecField(..., format='JPEG')
압축 방식 지정
thumbnail = ImageSpecField(..., options={
'quality': 60,
})
...etc