오식랜드
[Django] 이미지 첨부하기 본문
반응형
mainApp/settinngs.py
import os
.
.
.
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, '_media')
App/models.py
ImageField 사용
파일은 FileField 사용
class Post(models.Model):
.
.
.
my_image = models.ImageField(upload_to='blog/images/%Y/%m/%d/', blank=True)
file_upload = models.FileField(upload_to='blog/flies/%Y/%m/%d/', blank=True)
DB Update
pip install Pillow
python manage.py makemigrations
python manage.py migrate
URL 지정
mainApp/urls.py
from django.conf import settings
from django.conf.urls.static import static
# urlpatterns 다음 줄에
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
이미지 추가
{% if post.file_upload %}
<a href="{{ post.file_upload.url }}" class="btn btn-outline-dark" role="button" download>Download</a>
{% endif %}
- Admin 페이지에서 새 글 작성 시 이미지 추가
- templates : src =”{{ p.head_image.url }}”
if문과 함께 사용
{% if post.head_image %}
<img class="card-img-top" src="{{post.head_image.url}}" alt="">
{% else %}
<img class="card-img-top" src="http://placehold.it/750x300" alt="Card image cap">
{% endif %}
{% if post.file_upload %}
<a href="{{ post.file_upload.url }}" class="btn btn-outline-dark" role="button" download>Download</a>
{% endif %}
반응형
'dev-log > python' 카테고리의 다른 글
[Django] 테스트 주도 개발 (0) | 2023.10.18 |
---|---|
[Django] Template 문법 (0) | 2023.10.18 |
[django] FBV / CBV 방식 (0) | 2023.10.11 |
[django] 프로젝트 만들기 요약 (0) | 2023.10.11 |
[Python] Tkinter event 종류 (0) | 2023.02.18 |
Comments