작성
·
234
0
안녕하세요. 강의 재밌게 듣고 있습니다.
FBV로 블로그 상세 페이지 만들기
를 듣다가 궁금한 점이 생겼는데요.
single_page.html에서
<nav>
<a href="/blog/">Blog</a>
</nav>
위와 같이 navigation 바를 설정하는데 저렇게 navigation 바를 설정하면 어떤 경로로 Blog페이지로 연결되는지 구체적으로 알 수 있을까요?
/blog/ 라는 경로만 봤을 때는 어떤 페이지를 어떻게 참조해서 index.html 페이지가 렌더링 되는건지 잘 모르겠습니다.
답변 2
1
안녕하세요. 강의 재미있게 듣고 계신다니, 제가 감사합니다.
방문자가 브라우저로 /blog/ 라는 경로로 가는 행위는, 서버 입장에서는 그 url에 해당하는 동작을 요청하는 행위입니다.
장고 서버는 그 경로(/blog/)로 요청을 받으면, 우선 프로젝트 폴더의 urls.py (do_it_django_prj/urls.py) 에서 해당하는 경로가 있는지 찾아봅니다.
do_it_django_prj/urls.py에는 blog/ 로 시작하는 요청은 blog.urls 에 정의되어 있다고 적혀있습니다.
path('blog/', include('blog.urls)),
그래서 서버는 이제 blog앱 폴더의 urls.py를 둘러봅니다.
blog앱의 urls.py에는 /blog/라고 되어 있는 경로 뒤에 아무것도 없으면, 같은 폴더(blog폴더) 내의 views.py의 index라는 함수에 가서 뭘 돌려줘야 할지 찾아보라고 되어 있습니다.
blog/views.py에 가보면, index 함수가 있습니다.
여기에서는 db에서 Post 모델로 저장된 레코드들을 모두 가져오라고 되어 있습니다. 그리고 index.hmtl에 그 내용을 붙여서 방문자에게 return 하라고 되어 있죠.
이에 대한 내용은 장고(django)의 기본 원리에도 설명되어 있습니다. 참고해보세요.
혹시 더 궁금한 내용이 있다면 또 질문 남겨주세요.
0