✅ 이미지 파일 업로드하기 ✅
✔️ instagram/settings.py 에 추가
import os
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
: 이미지 파일이 media 폴더에 저장되는 것을 확인할 수 있다!!
✔️ pillow 패키지 설치
pip install pillow
➡️ 이미지파일을 업로드하기 위해서는 pillow 패키지를 설치해야한다!
✔️ tweet/models.py 에서 image 필드 추가
image = models.ImageField(upload_to = "images/")
✔️ instagram/urls.py에 url 추가
# 이미지를 업로드하자
from django.conf.urls.static import static
from django.conf import settings
# 이미지 URL 설정
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
✔️ tweet/views.py 에서 image 코드 추가
all_image = TweetComment.objects.all().order_by('-created_at')
return render(request, 'tweet/home.html', {'tweet': all_tweet, 'comment': all_comment, 'image': all_image})
: (GET) 저장된 이미지를 모두 보여준다.
image = request.FILES.get('image', '')
my_tweet = TweetModel.objects.create(author=user, content=content, image=image)
: (POST) 이미지 파일을 FILES로 저장해서 받아주고, my_tweet에 user, content, image를 저장해준다.
✔️ templates/tweet/home.html 수정
<a href="/tweet/{{ tw.id }}">
{% if tw.image %}
<img class="feed_img" src="{{ tw.image.url }}">
{% else %}
<img class="feed_img" src="https://blog.kakaocdn.net/dn/cEftca/btqAgU7ckZC/2JaB2RLUkvskP7TqowbTLk/img.png">
{% endif %}
</a>
: 게시글을 작성할 때 이미지가 있으면 그 이미지를 보여주고, 추가한 이미지가 없으면 기본 이미지로 게시되도록 설정!
'PROJECT > MYPJ' 카테고리의 다른 글
RE_PROJECT 01 | 팔로우, 팔로잉 기능 구현하기 (1) | 2022.10.23 |
---|---|
RE_PROJECT 01 | 게시글 수정하기 (0) | 2022.10.15 |
RE_PROJECT 01 | 댓글 작성하기, 삭제하기 (0) | 2022.10.13 |
RE_PROJECT 01 | 게시글 상세페이지, 게시글 삭제하기 (0) | 2022.10.13 |
RE_PROJECT 01 | 메인화면 구현하기 (0) | 2022.10.11 |