Django 튜토리얼3

No Image

Django Template

  • setting.py : APP_DIRS: True로 설정하기.
  • 만든 App 안에 App이름/templates/app이름의 폴더 생성

    App이름/emplate/App이름 라고 만들 필요 없이, 그냥 App이름/templates에 넣어도 되지 않을까? 만약 동일한 template 이름이 다른 어플리케이션에 있을 경우 Django 는 이 둘간의 차이를 구분하지 못합니다.

No Image

404 Error

기존 방식.

try:
        question = Question.objects.get(pk=question_id)
    except Question.DoesNotExist:
        raise Http404("Question does not exist")
    return render(request, 'polls/detail.html', {'question': question})

조금 더 편한 방법.

from django.shortcuts import get_object_or_404, render

from .models import Question
# ...
def detail(request, question_id):
    question = get_object_or_404(Question, pk=question_id)
    # get_list_or_404() : list Check
    return render(request, 'polls/detail.html', {'question': question})

Template 에서 하드코딩된 URL 을 제거하기

URL이 변경되면 URL을 포함한 코드를 전부 변경해야하는 문제점을 해결하기 위해 제거한다.

강결합 코드

html

<li><a href="/memos//"></a></li>

약결합 코드

    (r'^memos/(?P<memo_id>[0-9]+)/$', views.detail, name='detail')

html

No Image

URL 구역나누기

다른 App의 URLS.py를 사용하기 위해

app_name = 'memos' # App 이름 선언

html

No Image

Reference

0%