220204 TIL

CoderS·2022년 2월 4일
0
post-thumbnail

TIL DAY 171

오늘 배운 일

✔️ Django 웹 개발

1. 메인 페이지 URL 설정하기

이번에는 사이트의 메인 페이지를 설정하는 법에 대해 알아보겠다.

메인 페이지란 모든 웹 사이트의 첫 페이지를 말한다.
이러한 첫 페이지는 대개 사이트의 목차를 포함하고 있는 경우가 많기 때문에 인덱스 페이지라고 부르기도 한다

예를 들자면...

https://www.codeit.kr/

크롬을 키고 위의 링크로 가보면 이렇게 메인 페이지가 보인다.

그리고 우리 costory 프로젝트의 서버를 실행해서 확인해보면...

http://127.0.0.1:8000/

이렇게 에러가 발생한다.

이걸 방지하기 위해서 우리 프로젝트의 VSCode 로 가서 urls.py 로 간 다음에...

urls.py

빨간줄로 그어져 있는 코드를 주석 처리 해제한다.

그리고 name 을 지정해준다.

다음으로 views.py 로 가서 맨 아래에다가 함수를 만들어준다.

views.py

그럼 다시 서버를 실행시키면...

http://127.0.0.1:8000/

다시 한 번 들어가보면...

이렇게 포스트 목록 페이지로 리다이렉트가 되게 된다.

하지만 이렇게 하는 방법보다 더 간단한 방법이 존재한다.

urls.py 로 가서 우리가 원하는 메인 페이지 같은 경우에는 그냥 post_list 이다.

urls.py

위에 하이라이트 된 부분을 지워준다.

그리고 위의 아무것도 없는 URL 같은 경우에는 밑에처럼 주석 처리를 해준다.

다시 아무것도 없는 URL 로 가면...

http://127.0.0.1:8000/

바로 글 목록 페이지가 보인다.

urls.py 에서 밑에처럼 아무것도 없는 주소로 갔을 때

urls.py

views.py 에서 이렇게 리다이렉트 해주는 방법과

views.py

밑에 코드처럼 바로 보내주는 방법 이 두 가지의 차이점은 무엇일까?

urls.py

우리의 URL 주소를 확인해보면 아는데 /posts 로 이동하는게 아니라 루트 URL 로 접속했을 때 바로 글 목록 페이지가 보이게 된다.

이런 식으로 글 목록 보여주는 페이지의 URL 이 다르게 된다.

http://127.0.0.1:8000/
http://127.0.0.1:8000/posts

그런데 URL 을 변경했는데도 모든 기능이 에러 없이 동작하고 있는데 그런건 왜 그럴까?

그 이유는 바로 urls.py 에서 설정한 네임 덕분이다.

urls.py

네임은 URL 자리에 이름을 붙여주는 거라고 했는데 우리가 임의로 이렇게 URL 을 변경해도 웹 사이트의 모든 페이지에서는 URL 을 문자열 그대로 사용하는 것이 아니라 이런 이름을 참고하기 때문에 오류 없이 동작하게 되는 것이다.

이런 식으로 메인 페이지를 설정하는 두 가지 방법에 대해 알아보았다.

우린 첫 번째 방법인 리다이렉트를 이용하는 방법으로 해보겠다.

리다이렉트 방법을 쓰는 이유는 포스트의 목록을 보여주는 URL 의 구조를 posts 로 가져가고 싶기 때문이다.

URL 구조를 정할 때는 무조건 간단한 구조보다 알아보기 좋은 잘 짜인 구조를 사용하는 것이 좋다.

그럼 다시 빈 주소에 posts/ 를 넣어준다.

urls.py

그리고 위의 주석을 처리 해제한다.

끝으로 :

  • 이번에는 웹 사이트의 메인 페이지를 설정하는 방법에 대해 알아보았다.
  • 아무것도 없는 빈 URL 을 어디서 보낼 것인가를 결정해 주면 되는 것이었다.
profile
하루를 의미있게 살자!

0개의 댓글