60번째 줄:
60번째 줄:
|URL
|URL
|urls.py에서 뷰를 매핑하는 함수를 작성한다.
|urls.py에서 뷰를 매핑하는 함수를 작성한다.
−
−
*setting.py의 ROOT_URLCONF 항목을 읽어 urls.py를 불러오고, urlpatterns변수에 지정된 패턴을 찾아 대응시킨다.
−
*여기에 해당하는 view를 불러온다.
−
*매핑할 때 추출한 단어들을 뷰에 인자로 넘겨준다.
−
−
(주소창에 ~주소~/<int:변수명>/<타입:변수명> 형태로 인자를 전달한다. 각 타입에 대해선 p99에 목록이 있음.)
−
−
(정규표현식을 사용해서 URL패턴을 작성할 수도 있다. <int:year> 대신 (?P<year>[0-9]{4}) 개인적으로 앞이 훨씬 직관적이고 편한데? p100에 간단한 정규표현식 설명이 있다.)
−
−
(정규표현식을 쓸 때엔 path()대신 re_path()함수를 사용한다.
−
−
- 매칭되는 패턴이 없다면 에러를 처리하는 뷰를 호출한다.
|
|
|
|
|-
|-
|View
|View
−
|응답을 하기 위해 상단에 from django.http import HttpResponse를 써주어야 한다.
+
|
−
- 함수로 뷰를 작성한 예.
−
−
def 함수명(request):
−
−
~~
−
−
return HttpResponse(객체명)
−
−
request를 받고, HttpResponse를 반환한다. 에러를 반환하고 싶다면 HttpResponseNotFound 등을 반환하면 된다.
−
일반적으로 템플릿에 보냈다가 이를 HttpResponse객체에 담아 클라이언트에게 응답한다.
(일반적으로 HttpResponse 대신 render함수를 사용한다. 직접 짜는 것보다 html파일을 이용하는 게 편하기 때문이다.)
(일반적으로 HttpResponse 대신 render함수를 사용한다. 직접 짜는 것보다 html파일을 이용하는 게 편하기 때문이다.)