본문 바로가기
Django/Django note

[Django note] #5 내가 보려고 만드는 장고 노트(썸네일 구현)

by clean01 2020. 7. 22.

썸네일을 구현하기 위해 media를 올릴 수 있게 먼저 만들어주자.

 

복습 겸 media 구현하는 과정

 

1. views.py에 모델을 만들자

#views.py
class Pictures(models.Model):
	text=models.TextField()
    	img=models.ImageField(upload_to='blogimg')

 

2. settings.py에서 미디어 url, root 설정

#settings.py
MEIDA_URL = 'media'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

3. urls.py에 settings와 static 임포트하고, 경로 병렬적으로 추가

#urls.py
from django.conf import settings
from django.conf.urls.static import static

...

urlpatterns = [
	...
    ] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

 

4. admin.py에 등록, views.py로 함수 정의

#views.py
def home(request):
 	blog=Blog()
    	return render(request, 'home.html', {'blog':blog})

5. html에 media를 띄우자

<!--home.html-->
{%for blog in blog%}
<h2>{{blog.title}}</h2>
<img src="{{blog.image.url}}" alt="뭐시기"> #media로 받은 사진은 꼭 뒤에 .url을 붙여주자
{%end for%}

여기까진 media

 

썸네일 구현

1. 이미지키트를 설치

터미널에 pip install pillow django-imagekit를 쳐주자.

 

2. settings.py에 INSTALLED_APPS에 'imagekit' 추가

 

3. models.py를 수정

form django.db import models
from imagekit.models import ImageSpecField #얘 추가
from imagekit.processors import ResizeToFill #얘 추가

class Matzip(models.Model):
	...
    image_thumnail = ImageSpecField(source='image', processors=[ResizeToFill(150, 100)] #얘 추가
    ...

4. home.html에

<!--home.html-->
<img src="{{blog.image_thumnail.url}}" alt="썸네일">

끝끝