Project

[DailyCode #4] static태그 안에서 변수사용하기

팅코벨 2021. 6. 20. 15:40
728x90

#졸업과제

 

>>연관 게시글 링크(준비중)

views.py에서 파이썬파일로 우리팀이 만든 추천 알고리즘 모듈을 가져와 json으로 받아와서 html에 json형태로 parsing까지는 완료를 했다!

 

이제 그 json의 KEY와 Value 값만을 빼내서 원하는 위치에서 활용할 수 있도록 하는 것이 목표!!!! (아직 광광 남았다,,ㅠ)

 

그 과정 이전에 test용으로 각 식당 데이터별 사진 부터 띄우려고 하는데! 왠걸,,, 식당 300여개 데이터를 media로 넣기도 너무 힘들고, 배포 후에 다시 수작업을 하는 고통이 벌써 느껴지고,,,,,,,,,,,,,,,,,

그래서 전공 수업하시는 교수님 중 django를 잘하는 분이 있다는 소문을 듣고 찾아가보았다.

(근데 장고말고도 다 잘하셨다.ㄱㅇㄴ)

 

 사진을 띄울 수 있는 방법을 두가지로 우선 정리하면,

1. (기존방식)

모델 ImageField에 이미지를 등록하면 media 폴더에 모든 db의 이미지파일들이 들어오고 여기서 해당 식당별 id값을 이용해 하나씩 찾아서 뜨게 하는 방식!

(300개 이미지 하나하나 넣어줘야하고, 양이 많기 때문에,, 이후 배포시에 AWS S3를 이용해서 작업을 해야한다는 것)

 

2. (교수님 왈)

"static에 이미지를 몽땅 넣어 사용하거랏"  유레카...!
처음엔 그러면 이미지 파일들이 너무 많아 용량면이나 로딩이 오래걸린다거나 문제가 있을거라 생각했는데, 몇 백개 정도 가지고는 그런 문제가 발생하기엔 택도 없다구 하심,,,ㅎㅎㅎ

 

그래서 static 태그내에서 변수를 사용하여 해당 이미지를 가져오는 방식을 사용했다.

평소 static 이미지 파일을 불러오듯이 {% static '경로/{{해당변수}}' %} 이런식으로 static태그 내에서 이용하면, 변수를 사용하면 encoding되어 해당변수 부분이 제대로 문자로 인식되지 않아 이미지가 화면에 출력되지 않는다.

 

해결하기 위해서는,

{% get_static_prefix %}/경로/{{변수이름}}.확장자

형식으로 만들어준다. (해당 변수가 가져오는 파일에 확장자가 포함되어있으면 ' .확장자 '를 붙이지 X)

example

여기서 img1이 views에서 가져온 변수! (불러오는 값: 이미지 이름.jpg =추천결과로 나온 해당 식당의 사진)

 

추가로, 여기서 이미지들은 몽땅 static폴더에 들어가 있어야겠죠?? (꼭 확인하기)

이런 식으로 이미지가 잘 들어갔답니다~

⭐성공⭐

 

*참고 블로그

https://iamiet.tistory.com/21

 

[Django] Static 태그 내에서 변수를 사용하는 방법

● 증상 위 코드처럼 DTL 태그를 사용하여 이미지를 불러오는 코드를 작성했다. 하지만 화면에서 사진이 깨지는것으로 보여 개발자도구를 확인하니 아래처럼 출력되었다. ● 해결방법 위 처럼 {{

iamiet.tistory.com

 

728x90
반응형