from django.urls import path
from . import views
urlpatterns = [
path('articles/2003/', views.special_case_2003),
path('articles/<int:year>', views.year_archive),
path('articles/<int:year>/<int:month>/', views.month_archive),
path('articles/<int:year>/<int:month>/<slug:slug>', views.article_detail),
]
article/2003 부분이 URL이고 views.special_case_2003 부분이 처리함수(뷰)
웹 클라이언트가 웹 서버에 페이지 요청 시, 장고에서 URL을 분석하는 순서
위 예제에서 URL패턴을 정의할 때 <int:year> 부분을 path converter라고 한다.
URL패턴의 일부 문자열을 추출하기 위해 사용
<type:name> 형식으로 사용한다.
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now();
html = "<html><body>It is now %s</body></html>" % now
return HttpResponse(html)
<현재 날짜와 시간을 HTML로 반환하는 뷰>
함수로 뷰를 작성한 예시
뷰 함수는 첫번째 인자로 HttpRequest객체를 받는다. 필요한 처리를 한 후에 최종적으로 HttpResponse객체를 반환해준다.
보통은 별도의 템플릿 파일에 html코드를 작성한다.
뷰는 별도로 작성된 템플릿 파일을 해석해서 html코드를 생성하고 이를 httpResponse 객체에 담아서 클라이언트에게 응답한다.
장고가 클라이언트에 반환하는 최종 응답은 HTML 텍스트이다. 개발자가 응답에 사용할 *.html 작성하면 장고는 이를 해석해서 최종 HTML 텍스트 응답을 생성하고, 클라이언트한테 보내준다.
템플릿 파일은 *.html 확장자를 가지고, 장고의 템플릿 시스템 문법에 맞게 작성한다. 장고에서 템플릿 파일을 찾는 방식알고 적절한 디렉토리에 위치시켜야 한다.
장고에서 템플릿 파일 찾을 때 TEMPLATE_DIRS 및 INSTALLED_APPS에서 지정된 앱의 디렉토리를 검색한다. 이 항목들은 프로젝트 설정 파일인 settings.py에 정의되어 있다. 여러 개의 디렉토리를 지정할 수 있는데, 지정된 순서대로 디렉토리를 검색해 템플릿 파일을 찾는다.
무엇을 먼저 만들어야하는지 정해진 것은 없다.
책에서는 아래 순서로 한다고 한다.