✔️ Django 웹 개발
이번에는 사이트의 메인 페이지를 설정하는 법에 대해 알아보겠다.
메인 페이지란 모든 웹 사이트의 첫 페이지를 말한다.
이러한 첫 페이지는 대개 사이트의 목차를 포함하고 있는 경우가 많기 때문에 인덱스 페이지라고 부르기도 한다
예를 들자면...
크롬을 키고 위의 링크로 가보면 이렇게 메인 페이지가 보인다.
그리고 우리 costory 프로젝트의 서버를 실행해서 확인해보면...
이렇게 에러가 발생한다.
이걸 방지하기 위해서 우리 프로젝트의 VSCode 로 가서 urls.py 로 간 다음에...
빨간줄로 그어져 있는 코드를 주석 처리 해제한다.
그리고 name 을 지정해준다.
다음으로 views.py 로 가서 맨 아래에다가 함수를 만들어준다.
그럼 다시 서버를 실행시키면...
다시 한 번 들어가보면...
이렇게 포스트 목록 페이지로 리다이렉트가 되게 된다.
하지만 이렇게 하는 방법보다 더 간단한 방법이 존재한다.
urls.py 로 가서 우리가 원하는 메인 페이지 같은 경우에는 그냥 post_list 이다.
urls.py
위에 하이라이트 된 부분을 지워준다.
그리고 위의 아무것도 없는 URL 같은 경우에는 밑에처럼 주석 처리를 해준다.
다시 아무것도 없는 URL 로 가면...
바로 글 목록 페이지가 보인다.
urls.py 에서 밑에처럼 아무것도 없는 주소로 갔을 때
views.py 에서 이렇게 리다이렉트 해주는 방법과
밑에 코드처럼 바로 보내주는 방법 이 두 가지의 차이점은 무엇일까?
우리의 URL 주소를 확인해보면 아는데 /posts 로 이동하는게 아니라 루트 URL 로 접속했을 때 바로 글 목록 페이지가 보이게 된다.
이런 식으로 글 목록 보여주는 페이지의 URL 이 다르게 된다.
그런데 URL 을 변경했는데도 모든 기능이 에러 없이 동작하고 있는데 그런건 왜 그럴까?
그 이유는 바로 urls.py 에서 설정한 네임 덕분이다.
네임은 URL 자리에 이름을 붙여주는 거라고 했는데 우리가 임의로 이렇게 URL 을 변경해도 웹 사이트의 모든 페이지에서는 URL 을 문자열 그대로 사용하는 것이 아니라 이런 이름을 참고하기 때문에 오류 없이 동작하게 되는 것이다.
이런 식으로 메인 페이지를 설정하는 두 가지 방법에 대해 알아보았다.
우린 첫 번째 방법인 리다이렉트를 이용하는 방법으로 해보겠다.
리다이렉트 방법을 쓰는 이유는 포스트의 목록을 보여주는 URL 의 구조를 posts 로 가져가고 싶기 때문이다.
URL 구조를 정할 때는 무조건 간단한 구조보다 알아보기 좋은 잘 짜인 구조를 사용하는 것이 좋다.
그럼 다시 빈 주소에 posts/ 를 넣어준다.
그리고 위의 주석을 처리 해제한다.
끝으로 :