썸네일을 구현하기 위해 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="썸네일">
끝끝
'Django > Django note' 카테고리의 다른 글
[Django note] #4 내가 보려고 만드는 장고 노트(소셜 로그인 구현) (0) | 2020.07.20 |
---|---|
[Django note] #3 내가 보려고 만드는 장고 노트 - update 함수, 수정 기능 (전 내용이 보이게 하기) (0) | 2020.07.17 |
[Django note] #2 내가 보려고 만드는 장고 노트 (템플릿 상속, url 계층적 관리) (0) | 2020.07.16 |
[Django note] #1 내가 보려고 만드는 장고 노트(static과 media) (0) | 2020.07.14 |