Django/inflearn

템플릿 조건 처리

곽수진 2022. 9. 25. 01:49
반응형

from django.shortcuts import render
from django.http import HttpResponse

from django.template import loader
from datetime import datetime

# Create your views here.
def index(request):
    now = datetime.now()
    context = {
        'current_date' : now
    }
    return render(request, "index.html", context)


def select(request):
    context={'number':4}
    return render(request, "select.html", context)


def result(request):
    context = {'numbers' : [1,2,3,4,5,6]}
    return render(request, "result.html", context)

 

▶ template.render와 loader를 사용해서 template을 불러오는 코드는 render라는 단축 메소드 하나로 해결

▶ select.html에 주어진 값의 홀짝 여부에 따라 다른 메시지가 뜨도록 함

 

 

 Loader : 템플릿을 반환하는 역할

 

 

 render : HttpResponse로 작성된 텍스트를 반환

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>Hello World!</p>
    <p>{{ current_date }}</p>
    <p>{{ current_date|date:"Y년 m월 d일 H시 i분 s초" }}</p>

    <!--<a href="/select/">시작하기!</a>-->
    <a href="{% url 'select' %}">시작하기!</a>
</body>
</html>

▶ <a href="{% url 'select' %"}</a> : a 태그로 페이지의 링크를 걸 때 같은 Django 내의 페이지라면 템플릿 언어를 사용해서 실제 주소가 아닌 urls.py에 정의된 name으로 작성 가능

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>
        {% if number|divisibleby:2 %}
            짝수입니다.
        {% else %}
            홀수입니다.
        {% endif %}

    </p>
    <p>
        <a href="{% url 'result' %}"><button>결과 보기</button></a>
    </p>
</body>
</html>

▶ Django 템플릿에서 if문은 if을 시작하고나면 end if로 닫는 부분을 적어야 함

▶ 나머지 연산자를 사용할 수 없으므로 Django에서 제공하는 divisibleby 필터를 사용해서 홀짝 여부를 검사함

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <ul>
        {% for num in numbers %}
        <li>{{ num }}</li>
        {% endfor %}
    </ul>
</body>
</html>

▶ for문을 이용해서 numbers에 넣어둔 리스트를 연속해서 표시함

 

 

반응형

'Django > inflearn' 카테고리의 다른 글

로또 번호 출력 페이지 만들기  (0) 2022.09.28
스태틱 파일 띄우기  (0) 2022.09.27
템플릿 기본(변수 넘기기)  (2) 2022.09.20
URL 매핑 규칙  (0) 2022.09.19
여러 페이지 띄우기  (0) 2022.09.18