[django] Media Files

송왕구·2023년 4월 2일
0

Django

목록 보기
5/9
post-thumbnail

💁‍♀️ ImageField()?

  • 이미지 업로드에 사용하는 모델 필드
  • 사용자가 업로드한 객체가 유효한 이미지인지 검사
  • ImageField 인스턴스는 최대 길이가 100자인 문자열로 DB에 생성된다. max_length로 최대 길이 변경가능



💁‍♀️ Media File 사용준비

settings.py

project/urls.py

articles/models.py

  • ImageField를 사용하려면 Pillow 라이브러리가 필요하다. Pillow 없이 mkaemigrations 불가

create.html

  • enctype="multipart/form-data"는 HTML 폼(form) 데이터가 서버로 전송될 때, 인코딩 타입을 지정하는 속성입니다.

  • 이 속성은 폼 데이터 중에 파일 업로드와 같은 이진(binary) 데이터를 전송하는 경우에 사용됩니다. 이진 데이터를 전송하는 경우, 일반적인 폼 데이터와 달리 ASCII 문자셋으로 인코딩하는 것이 불가능하기 때문에, 이진 데이터를 전송할 수 있는 인코딩 방식인 멀티파트(multipart) 인코딩을 사용해야 합니다.

  • 따라서, enctype="multipart/form-data"는 폼 데이터가 이진 데이터를 포함할 경우, 이를 멀티파트 인코딩으로 전송할 수 있도록 지정하는 것입니다.

enctype 속성은 폼 데이터를 전송할 때 기본값으로 application/x-www-form-urlencoded를 사용하며, 파일을 포함하지 않는 단순한 폼 데이터의 경우, 이 기본값을 사용하면 됩니다.

views.py

detail.html

  • {% if article.image %}태그를 써줘야 image가 없는 글에 들어갔을때 오류가 안뜬다.
  • 태그를 넣지 않으면 ValueError - The 'image' attribute has no file associated with it.가 나온다.
profile
다른 사람들처럼 거창하게 어떤 개발자가 되고 싶은 생각은 없습니다. 그냥 놀듯이 내가 원하는건 모두 할 수 있고 재미있는 삶을 욕망합니다.

0개의 댓글