본문 바로가기
Django Class Review

Django Class Review1(view, URL)

by Rain_fall 2025. 8. 12.

1.  기본 명령어

1)django-admin: 관리자 명령어로 원하는 작업 명령어들을 볼 수 있음

2)python manage.py: 실제 실행 파일의 명령어로 runserver와 같은 동작을 실행할 수 있음

ex) python manage.py startapp first_app => first_app이라는 어플리캐이션 생성

2. URL 연결

1)view.py와 urls.py

-view.py는 일종의 보여주는 로직이 들어있는 곳

-urls.py는 view에 들어있는 기능을 실제 urls로 연결시켜주는 부분

여기서 동적 라우팅을 위한 <topic>으로 topic인자를 사용자로부터 입력 받는다.

입력받은 topic은 view.py에서 사용자의 요청과 함께 news_view의 인자로 들어가 동작하게된다.

 

2)project level의 urls와 app의 urls의 연결

urlpattens 리스트를 path함수를 이용하여 first_app의 urls.py와 연결 시킨다. 여기서 include함수를 이용해 연결해야한다.

 

3.ResponseNotFound와 404페이지 이용하기

앞선 예시와 같이 articles에 없는 기사 제목의 경우 찾을 수 없는 페이지와 같이 표시를 해줘야한다.

그러기 위해서 사용되는 것이 ResponseNotFound와 404페이지이다.

 

1)HttpResponseNotfound

다음과 같이 try, except문을 이용해서 입력한 topic이 articles에 존재하지 않는 경우 HttpResponseNotFound함수를 이용해서 오류 창을 나타낼 수 있다.

 

2)Http404

 Http404의 경우 일반적으로 많이 사용하는 오류 페이지이다. 이를 활용하기 위해서는 settings.py에 들어가서 DEBUG=False, ALLOWED_HOST에 사용하는 호스트를 보안상의 이유로 추가해줘야한다.  

 

4. 리디렉션 

여기서 말하는 리디렉션이란 기존에는 domain.com/first_app/sports/와 같은 형식으로 접속했다면, 이번에는 신문과 같이 1페이지, 2페이지에 접속하면 원하는 articles 페이지에 접속할 수 있도록 하는 것이 바로 리디렉션이다. 예를 들어 sports를 0, finance를 1와 같이 페이지를 부여해서 접속하고 싶다면 domain.com/first_app/0/을 입력하면 domain.com/first_app/sports/에 동일하게 접속해지는 것이다.

 

이럴때는 HttpResponseRedirect를 활용해서 다음과 같이 num_page를 사용자로부터 입력 받아, 로직을 거쳐 topic을 반환해주면 자동으로 해당 topic에 맞는 사이트를 다시 리디렉 해준다. 

여기서 추가적으로 view.py에 num_page_view를 추가했기 때문에 urls.py의 urlpatterns에도 path함수를 이용해서 추가해줘야한다. 사용자로부터 받는 num_page인수는 정수이기 때문에 동적 할당을 할때는 int를 붙여주도록 한다.

 

5.reverse URL과 URL name

앞서 확인한 리디렉션을 통해서 원하는 페이지 번호를 부여할 수 있게 됐다. 하지만 여러가지 view와 url이 생기게되면 num_page_view 함수 내부에서 topic이라는걸 리디렉션 하기에는 헷갈릴 수 있게 된다. 이를 직관적으로 볼 수 있게 해주는 것이 바로 reverse 함수이다. 

먼다 다음과 같이 기존의 news_view를 가져오는 path에 topic-page라는 URL name을 부여한다. 이렇게 하면 더 직관적으로 원하는 url을 관리할 수 있게 된다. 

다음으로 reverse 함수를 이용해서 num_page_view함수를 수정한다. reverse 함수는 topic-page라는 이름의 url을 찾아서 해당 url에 topic 이라는 인자를 전달하라는 의미이다. 이를 통해서 더 직관적으로 원하는 url을 리디렉션 할 수 있게 된다.

'Django Class Review' 카테고리의 다른 글

Django Class Review2(template)  (3) 2025.08.14