이전에 작성한 코드에 이어서 작성함
urls.py
에서 chicken 문자열 패턴매칭이 되면 views.chicken으로 연결시킨다.views.py
에서 chicken template을 render하는 chicken view를 만들어준다.chicken.html
에서 template을 작성한다.localhost:8000/foods/chicken
에 들어가면 아래와 같은 화면이 뜬다./foods/chicken
을 적어준다.그럼 /foods/index
로 접근하여 메인페이지로 들어가서 메뉴보기 버튼을 누르면 우리가 아까 만들어준 템플릿(/foods/chicken
)이 출력된다.
상세페이지에서 메인페이지로 돌아갈 수 있도록 돌아가기 버튼을 추가해주자.
<str:food>
가 동적으로 바뀌는 URL을 변수를 이용하여 처리할 수 있도록 해준다.
설명하자면 menu 다음 경로구분기호(/)를 제외한 모든 URL을 문자열로 보고 변수 foods에 담아서 food_detail
함수를 호출할 때 인수로 넣어준다.
<str:food>
말고도 아래와 같은 것도 있다.
더 자세한 사항은 다음 챕터에서 다뤄보도록 하겠다.
단, 위에서 입력한 변수(<str:food>
)를 food_detail
에다가 인수로 넘겨주었기 때문에 그 인수를 사용할 수 있도록 food_detail
에서 2번째 인수로 food 변수를 추가해주어야 한다.
그리고 받았으면 그 인수를 사전형으로 담아서 view에서 template으로 보내보자.
마지막으로 detail template
을 만들어서 받은 사전형 데이터를 사용해보자. 어떻게? 💡 view에서 넘어온 객체를 사용할 때는 템플릿 변수를 사용!!
value는 key로 받아야 하기 때문에 details.html의 위와 같은 템플릿 변수에 {{name}}
을 적어준다.
아래는 menu/
다음의 부분이 <str:food>
변수에 들어가고, 그 변수를 템플릿에서 받아서 그에 따라 다른 문자열을 출력해주는 모습이다.
자동으로 URL에서 값을 가져와 view를 거쳐서 template으로 전달되는 것이다.