반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[Django] 이미지 첨부하기 본문

dev-log/python

[Django] 이미지 첨부하기

개발하는 오식이 2023. 10. 16. 18:49
반응형

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