Python Django Web Framework - 5/14. Routing URLConf

leecw4u·2023년 10월 17일
0

Django

목록 보기
5/15
post-thumbnail

🛣Routing

어떤 웹 프레임워크를 사용하건 처음에 고려해야 될 것은 라우팅이다.
라우팅이 모든 과정의 반이라고 해도 과언이 아니라고 한다.
라우트(Route)는 경로라는 뜻이며 라우팅은 각각의 경로를 어떻게 처리할 지 결정해 주는 것을 말한다.

🖋Scenario

project안에 있는 urls.py에서 가장 큰 틀의 라우팅을 진행해 준다.
그 다음 적당한 app으로 위임하고 그 안에 view안에 있는 특정 함수로 위임해준다.
세가지 경우에 대한 라우팅을 시도하려고 한다.
1️⃣ 사용자가 home 경로로 접속했을 때
2️⃣ create/ 경로로 접속했을 때
3️⃣ read/1/ 경로로 접속했을 때

👨🏻‍💻CODE

myproject urls.py설정

라우팅을 할 때 중요한 것은 규칙을 지키는 것이다.
우리는 urlpatterns에 있는 리스트를 정의해 줘야한다.
그리고 그 리스트 안에는 라우팅과 관련된 정보가 적혀 있어야 한다.
admin은 django가 가지고 있는 관리자 화면으로 이동하기 위한 라우팅 설정이지만 이번 수업에선 admin은 보지 않는다.

사용자가 어떠한 경로도 기입을 하지 않았을 때 즉 HOME에 접속하였을 때를 가정해 보자.

include 매서드를 사용하기 위해 import 해주고
home으로 접속하기에 path에는 빈칸 ''을 넣어준다.
앱으로 위임하기 위해 그 다음 인자로 include함수를 사용한다.
include 안에는 이동할 앱 이름 + .urls을 적어준다.
이 말은 즉 myapp 안에 있는 urls.py를 사용해라라는 말이다.

하지만 myapp에는 urls.py가 없는데?

그래서 그 다음 스텝은 myproject안에 있는 urls.py를 myapp에 복사 붙여넣기 하면 된다.
그 결과 다음과 같은 파일 구성이 된다.

myapp urls.py 설정

이제 새로 만들어진 url.py를 설정해보자.

사용자가 사용하는 주소 뒤에 아무것도 안쳤을 경우 즉, http://127.0.0.1:8000/로 접속했때를 가정해보자.

myproject와 마찬가지로 urlspatterns 리스트 안에 path를 수정하는 것은 마찬가지이다. 하지만 path 뒤쪽에 오는 인자 값이 views.py로 보내야 된다는 것이 다르다.

위 코드에선 views.py 안에 index를 사용한다고 되어 있는데 views.py안에서는 어떤 일이 일어나고 있는 걸까?

처음 views.py 파일을 열면 아무것도 없다.
여기서 우리가 함수를 만들어 myapp/urls.py에 리턴할 것들을 만들어 주는 것이 우리가 할 일이다.
일단 index라는 함수를 만든 뒤 파라미터 값으로 request를 넣어준다. 아무거나 넣어줘도 되지만 관습적으로 request를 사용한다. Client에게 리턴 값으로 HTTP이용해서 응답을 하겠다는 의미로 HttpResponse를 사용한다.
그리고 myapp에 urls.py에 들어가 해당 path에 두번째 인자로 views.py 안에 있는 index함수를 쓰겠다고 선언해준다.

path('read/<id>/', views.read)

myapp에 urls.py에 <id>가 나오는데 이건 언제나 바뀔 수 있는 값이 들어온다는 뜻이다. 그리고 views.py에 해당하는 함수에 두 번째 인자로 id를 적어주면 된다.

profile
초보 개발자의 끄적끄적 스터디 블로그

0개의 댓글

관련 채용 정보