장고 템플릿에 이미지 보이를 보이려면 어떻게 해야하나요?

조회수 4918회

안녕하세요. django 관련 질문 입니다. 제 질문은 장고 템플릿에 이미지를 이미지와 관련된 모델과 같이 display 하는 방법 입니다. 제가 크롤링한 테이터로 한국 여배우 목록을 정리해서 보여주는 웹사이트를 만들고 있는데 여배우 이름과 이미지는 우선 다운 받아 놓은 상태 입니다. 우선, name 모델과 다운받은 이미지의 로컬경로가 있는 image_paths 모델 (이 두 모델은 다운받은 데이터의 순서가 같음)이 있고 실제 이미지가 있는 image 폴더가 있습니다. (image_paths와 순서 불일치, 각각의 파일명은 image_ptath와 같음) 그런데 여기서부터 막히는데요

class images(models.Model):
    name = models.CharField(max_length=30)
    image_urls = models.CharField(max_length=200)
    images = models.TextField()
    image_paths = models.TextField(null=True)

질문,

위 모델들의의 데이터 순서와 동일하게 image 폴더의 사진들을 장고 템플릿에 나타내려면 어떻게 해야 할까요?

정말 모르겠네요 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 저 모델은 데이터베이스에 순서대로 차곡차곡 쌓이고

    사진은 폴더에 파일명 순서(혹은 다른것)로 정렬이 됩니다

    그래서 그냥 django에서 순서대로 불러오면

    폴더에 있는 파일을 데이터베이스에 저장한 순서대로 가져올겁니다.

    그저 템플릿에

    <% for image in images %>
        <img src="{{ image.image_paths }}" alt="{{ image.name }}">
    <% endfor %>
    

    이런식으로 가져오시면 될거에요

    만약 데이터베이스에 쌓인 순서가 아닌 파일명 순서를 말씀하신거라면

    order by를 사용해서 파일명기준으로 오름차순하시면 될것같아요

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 답변 감사합니다. 지금 해봤는데 경로문제가 있는 것 같습니다. 이 경우에도 media나 static setting을 해주어야 하는건가요?? 알 수 없는 사용자 2016.6.20 22:44
    • 아 ^^ 써주신 것처럼 image.image_paths 앞에 static/을 더했더니 정상적으로 출력 됩니다. 답변 감사합니다 ^^ 알 수 없는 사용자 2016.6.21 04:24

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)