tasks

Shin Woohyun·2021년 7월 8일
0

tasks라는 app을 만들고, tasks에 data를 task를 넣어서 html에 for문을 통해 하나하나 보여주기로 한다.

views.py

from django.shortcuts import render

tasks = ["foo", "bar", "baz"]

def index(request):
    return render(request, "tasks/index.html", {
        "tasks": tasks
    })

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
    <h1>Tasks</h1>
    <ul>
        {% for task in tasks %}
            <li>{{ task }}</li>
        {% endfor %}
    </ul>
</body>
</html>

바뀌지 않는 부분으로 layout을 만들고, layout inherit을 이용해서 layout을 가져와서 바뀌는 부분(body)만 작성할 수 있다.

layout.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Tasks</title>
</head>
<body>
    {% block body %}
    {% endblock %}
</body>
</html>

index.html

{% extends "tasks/layout.html" %}

{% block body %}
    <h1>Tasks</h1>
    <ul>
        {% for task in tasks %}
            <li>{{ task }}</li>
        {% endfor %}
    </ul>
{% endblock %}

url을 전부 찾아가서 바꿀 필요 없이 url name을 이용해서 적용하면 더 편하다.

<a href="/tasks/add">Add a New Task</a>
-><a href="{% url 'add' %}">Add a New Task</a>

url name이 다른 앱의 url name과 같아서 혼돈될 수 있어서 의도치 않게 연결될 수 있으니
tasks/urls.py에 app_name = "tasks"을 작성하고,
<a href="{% url 'tasks:index' %}">View Tasks</a> app_name:url_name을 쓴다.

후기: 장고 너무 신기하고 신기하고 신기함.

0개의 댓글