개발일지?/내배캠

캠프 6주 2일차 TIL

규파팡 2023. 4. 18. 20:15

오늘

장고심화강의 보기 전 기초강의를 전부 들었다.

팀프로젝트 때문에 계속 들었던지라 새로운 부분보단 복습의 느낌이 강했고 여전히 부족하다는 생각이 들어서 앞으론 더 열심히 해야겠다는 생각을 했다. 나이가 어느샌가 있는 상태가 됐고 그러면 다른 친구들보다 차별성이 있어야 한다는 생각에 오늘도 열정을불 태웠다.

그래서 오늘의 til주제는 오늘 공부한 것 중에서 제일 신기했던 

The Django template language

위 제목은 공식문서에서 복사해 왔다.

{% extends "base_generic.html" %}

{% block title %}{{ section.title }}{% endblock %}

{% block content %}
<h1>{{ section.title }}</h1>

{% for story in story_list %}
<h2>
  <a href="{{ story.get_absolute_url }}">
    {{ story.headline|upper }}
  </a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}


{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
    Athletes should be out of the locker room soon!
{% else %}
    No athletes.
{% endif %}

위 예시도 공식문서 복붙이다 아래 조건문은 임의로 갖고 왔다 형식이 어떤지 보이기 위해서 이번에 장고를 사용하면서 html에 조건문과 반복문을 사용하는 부분이 가장 신기했고 유용했다. 조건문 같은 경우는 이번프로젝트 때로그인했을 때와 안 했을 때를 쉽게 나눌 수 있었고 상대방이 나를 팔로우했을 때와 안 했을 때를 쉽게 나눌 수 있었다. 반복문 같은 경우도 계속해서 반복되는 구문을 쉽게 돌릴? 수 있었다. 그리고 오류를 맞게 한 주석 부분

{# greeting #}hello

공식문서의 예시를 복붙해온 건데 Django template language에서는 주석처리를 하면 좌우에 #이 붙는다. 주석지운 다고 앞부분#을 지웠는데 뒤에도 #이 남아서 계속 오류가 났던 기억도 있다.

 

그리고 Django template language의 꽃이라 생각하는 템플릿 상속!

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="style.css">
    <title>{% block title %}My amazing site{% endblock %}</title>
</head>

<body>
    <div id="sidebar">
        {% block sidebar %}
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/blog/">Blog</a></li>
        </ul>
        {% endblock %}
    </div>

    <div id="content">
        {% block content %}{% endblock %}
    </div>
</body>
</html>

{#이친구는 base.html이 될 것입니다.#}
{% block content %}{% endblock %}

이 부분에 다른 html을 넣을 수 있다. base.html에 헤더 네비 푸터를 만들고 content부분에 이제 필요한 html들을 넣으면 되기 때문에 기본 틀만 있으면 넣기만 하면 된다는 점에서 꽃이라 생각했다.

{% extends "base.html" %}

{% block title %}규파팡혼자만의세상{% endblock %}

{% block content %}
{% for entry in blog_entries %}
    <h2>{{ entry.title }}</h2>
    <p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}

이렇게 {% extends "base.html" %} 작성해 주면 앞에 base.html이 불러와지고 그 안에 title과 content가 연결만해주면 자동으로 상속된다.

오늘의 규파팡이 느낀 점!

문제를 해결한 건 아니지만 공부한 부분과 신기하고 유용하게 느꼈던 부분을 작성했고, 전과는 다르게 기분?이 좋았다.

TIL 대표이미지