2014-11-13 3 views
0

저는 Python 웹 프레임 워크와 HTML 템플릿을 실험하고 있습니다. 전체 HTML 코드를 즉시 생성하는 것에 비해 개념이 제한적으로 보입니다.Python 웹 프레임 워크 : HTML 서버 측 템플릿 및 코드 중복

<select id="{{ item.name }}" name="{{ item.name }}"> 
{% for choice in item.choices %} 
    {% ifequal item.value choice %} 
    <option value="{{ choice }}" selected>{{ choice }}</A> 
    {% else %} 
    <option value="{{ choice }}">{{ choice }}</A> 
    {% endifequal %} 
{% endfor %} 
</select> 

ifequal 문은 단지 선택된 옵션에 "선택"속성을 추가하는 전체 코드를 복제 : 예를 들어, 콤보 상자를 생성하려면 다음 장고하는 주형 예를 발견했다. 이것은 여러 속성을 가진 HTML 태그에 부담이되고 일부 조건은 조건에 따라 또는 존재하지 않는 것으로 보입니다. 위의 스 니펫은 templating의 나쁜 사용법입니까? 그것을 사용하여 콤보 상자를 구현하는 더 좋은 방법이 있습니까?

답변

3

이렇게하면 한 줄로 작성할 수 있습니다.

<option value="{{ choice }}" {% ifequal item.value choice %}selected="selected"{% endifequal %}>{{ choice }}</option> 
+0

감사합니다. 나는 여전히 HTML 코드를 생성하는 것이 이보다 더 쉽다고 생각한다. 모듈화 할 수도 있습니다 (예 : create_combobox (options, selected_option) 메소드). 웹 개발자가 HTML 템플릿을 사용하는 것을 선호하는 것처럼 보입니다. 단지 의견 일 뿐이며 여기에 뭔가 빠져 있습니다. –

+0

글쎄 우리의 서버 사이드 코드 라이터를 유지하는 것이 좋습니다. 따라서 파리에서 템플리트 코드를 작성하려고하면 서버로드가 증가합니다. 그래서 저는 모든 사람들이 많은 생각을 템플릿 레벨에서 처리하는 것을 선호한다고 생각합니다. –