외부 웹 사이트에서 네 개의 HTML 조각을 가져와 내 장고 사이트의 머리글과 바닥 글에 표시해야합니다. 나는 확실히 이들을 일정 시간 동안 캐시 할 필요가있다.django 템플릿에서 사용하기 위해 html 조각 읽기 및 캐싱
나의 초기 생각은 urllib2를 사용하여 http를 읽고 html을 내 서버에 파일로 작성하는 것이 었습니다. Django 컨텍스트 프로세서를 통해 구현 된이 코드는 네 개의 파일의 타임 스탬프를 확인하고 필요에 따라 업데이트 된 버전을 검색 한 다음 템플릿 변수로 읽어들입니다.
네 개의 파일 중 하나에 대해 Django의 템플릿 변수 크기를 초과하는 것으로 보입니다. 이로 인해 readlines()를 사용하고 해당 파일을 배열로 템플릿에 전달해야했습니다.
외부 사이트에서 네 개의 HTML 조각을 가져 와서 캐시하고 내 서식 파일로 전달하는 좀 더 우아한 방법이 있습니까?
여기 내 base.html 템플릿 지금의 모습입니다 :
{{ integration_prehead|safe }}
<head>
{{integration_head|safe }}
...
</head>
{% for l in integration_topper %}{{ l|safe }}{% endfor %}
{{ block content }}{{ endblock content }}
{{ integration_footer|safe }}
prehead.html는 문서 타입 및 열기 HTML 태그 이외의 많은 부분이 아니다. head.html은 많은 자바 스크립트 및 스타일 시트입니다. topper.html과 footer.html은 가장 큰 부분이며 페이지의 상단과 하단입니다. 특히 토퍼는 매 15 분마다 변경 될 수 있으므로 템플릿에 하드 코딩하는 것은 실용적이지 않습니다.
토퍼가 39k로 너무 커서 단일 Django 템플릿 변수를 읽을 수 없으므로 for 루프를 읽습니다.
Html fragment가 사이트의 일부가 아닙니다. 어떻게 내부 템플릿 시스템의 도움으로 외부 HTML을 캐싱 할 수 있습니까? 당신의 질문이 맞습니까? 예를 들어주세요. – sergzach
하지만 흥미 롭습니다. +1. – sergzach
감사합니다. 좀 더 자세한 내용을 제공하기 위해 제 질문을 수정했습니다. – wmfox3