Django/회사 소개 사이트

URL Mapping 3 (내용 추가하기)

haedal-uni 2021. 8. 3. 00:46
728x90

board application의 url을 먼저 셋팅해본다.

 

설명을 위해 ### 으로 표시된 코드만 본다.

 

 

 

*urls.py (practice_url>board>urls.py)

 

from django.urls import path
from board import views

urlpatterns = [
    path('', views.board), ###
]



 

 

* practice_url > practice_url > urls.py

 

from django.contrib import admin
from django.urls import path, include
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.first),
    path('second/', views.second),
    path('products/', include('product.urls')),  
    path('boards/', include('board.urls')),  ###
]

 


* practice_url > practice_url > urls.py

      

path('boards/', include('board.urls')), 

path('boards/', include('board.urls')), 

boards라고 하는 이름을 갖고 있는 url들은

 

path('boards/', include('board.urls')), 

모두 board.urls에서 관리한다고 적어뒀다.   

 

 

 

 

 

* practice_url>board>urls.py

 

path('', views.board),

 

path(' ', views.board),

그렇기 때문에 아무것도 입력하지 않았을 때는 

 

url의 boards를 입력했을 때 실행되는 함수라고 보면 된다.
(127.0.0.1:8000/boards/)

 

 

 

 

이게 무슨 말이냐면

웹서비스 주소는 127.0.0.1:8000/이다.

 

그런데 127.0.0.1:8000/boards/

이렇게 생긴 url들을 board.urls에서 관리해준다.

 

그런데 이 urls.py

즉, practice_url>board>urls.py

 

path('', views.board),

여기 안에서 아무것도 입력하지 않았을 때 실행되는 함수는

127.0.0.1:8000/boards/

곧 boards를 입력했을 때 실행되는 함수이다.


 

 

Q&A

 

더보기

path('', views.board), 

 

Q1) 아래 1번과 2번으로 적어둔 위 코드에 대한 해석을 맞게 작성한건가요?

 


1. views 안에 있는 board 라고 하는 함수를 실행한다.

맞습니다. views.py 내부에 작성한 board 함수를 호출하는 것입니다.

 



2. "아무것도 입력하지 않았을 때는 url의 boards를 입력했을 때 실행되는 함수라고 보면 된다. "

에서 boards는 함수가 아니라 127.0.0.1:8000/boards/의 boards를 의미하는 것이 맞나요?

맞습니다. 

boards는 함수가 아니라 url 경로상에 수강생님이 생성한 

path('boards/', views.board) 형태로 찾아가는 것을 의미합니다.

 

(다만, views에 연결한 함수는

수강생님의 의도에 따라 board가 아닌 다른 값이 들어올 수 있습니다.)

 



Q2)

아무것도 입력하지 않았을 때 = 127.0.0.1:8000/boards/를 입력했을 때

(url에서 boards 뒤에 다른 것을 입력하지 않았으므로) 

위와 같은 결론이 나오는게 맞게 해석한건가요? (두개가 서로 같은 말인가요??)

제가 정확하게 이해한 것인지 모르겠으나 

path('boards/', views.board) / path('', views.board),가 

같은 페이지가 나오는 것인지 문의주신 것일까요?

두 함수가 경로만 다를 뿐, 같은 board라는 함수를 참고하고 있다면, 

결과적으로 같은 화면이 보이게 될 것입니다. 

 

다만, 이렇게 되면 개발하는 과정에 혼동이 있을 수 있으니 

좋은 코드로 보기는 어려울 것 같습니다.



Q3) 

또 위 1번과 2번은 같은 의미로써 두 개의 의미 모두 결론은 하나로써 

views 안에 있는 board 라고 하는 함수를 실행한다 라는 말이 되는 건가요??

 

1번 문항에서 답변은 이미 드린 것 같지만

경로만 다르게 해서 동일한 html 페이지를 동일한 board라는 함수를 이용해 

보여주고 있다고 이해하면 되겠습니다.


 

 


 

마찬가지로

 

 

 

* practice_url > product >urls.py

 

from django.urls import path
from product import views

urlpatterns = [
path('', views.productlist),
]

 

productlist라고 하는 함수는 어떤 url에서 실행될 것인가

 

 

*practice_url > practice_url > urls.py

우리들의 웹사이트 주소는 127.0.0.1:8000/이다.

 

근데 products라고 하는 url에 대해서는

product라고 하는 application 안에 있는 urls.py에서 관리를 해준다.

 

 

 

 

 

*practice_url > product >urls.py

 

path('', views.productlist), 

근데 여기서 아무것도 입력하지 않았을 때

 

from django.urls import path
from product import views


urlpatterns = [
path('', views.productlist),  # << 여기
]

 

실행되는 함수가 productlist니깐

 

( *practice_url > practice_url > urls.py )

127.0.0.1:8000/products 

라고 입력했을 때

 

(* practice_url > product >urls.py )

실행되는 함수가 productlist이다.

path('', views.productlist),

 

 

 

 

 

예를 들어서

 

*practice_url > board >urls.py

from django.urls import path
from board import views

urlpatterns = [
path('', views.board),
path('first/', views.boardfirst),
]

 

boardfirst라고 하는 함수는 어떤 url에서 실행이 될 것인가?

 

 

 

 

 

*practice_url > practice_url > urls.py

path('boards/', include('board.urls')),

 

우리들의 웹 서비스 주소는 127.0.0.1:8000/ 이 것인데

boards로 시작되는 모든 url들은 board.urls에서 관리를 한다.

 

 

 

path('first/', views.boardfirst), 

 

여기 url 중에서 boards/first에 실행 되는 함수boardfirst가 된다.

 

, 127.0.0.1:8000/boards/first url에 대해서 실행되는 함수

boardfirst 함수가 되는 것이다.

 

 


 

*practice_url > product > urls.py

 

여기도 마찬가지다.

 

from django.urls import path
from product import views


urlpatterns = [
path('', views.productlist),
path('first', views.productlist),
]

 

 

 

 

728x90

'Django > 회사 소개 사이트' 카테고리의 다른 글

URL Mapping 2  (0) 2021.07.30
URL Mapping ( 결과 값 캡쳐해서 수정 필요)  (0) 2021.07.29
웹사이트 만들기  (0) 2021.07.28