-
django 입문(3) RoutingBackend/Django 2023. 7. 3. 22:40
urls.py
project(보통 config) - urls.py: 가장 큰 틀의 Routing 작업 수행. 들어온 요청을 적당한 App으로 위임. 프로젝트 성격의 URL 매핑만 추가되는 것이 좋다.
from django.contrib import admin from django.urls import path from pybo import views urlpatterns = [ path('admin/', admin.site.urls), path('pybo/'. views.index), # 'pybo/' URL이 요청되면 views.index 를 호출하라는 매핑을 추가 ]
URL 뒤에 ‘/’ 를 붙이는 이유는 URL을 정규화하는 장고의 기능 때문. 따라서 웬만하면 URL 매핑 시 항상 끝에 슬래시(’/’) 를 붙이자.
app - urls.py: 앱 내 적당한 함수로 위임하는 역할
특정 앱에 관련된 것(ex.요청)들은 해당 앱 디렉터리 하위 경로에서 관리하는 것이 좋다.
from django.contribe import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', include(pybo.urls)), ]
path(‘URL’, include(’app.urls’)): 특정 URL로 시작되는 페이지 요청은 app/urls.py 파일의 매핑 정보를 읽어서 처리하라는 의미.
from django.urls import path from . import views urlpatterns = [ path('', views.index), path('create/', views.create), ... ]
path(’’. views.index): 요청받은 앱 URL의 공통 부분은 이미 config/urls.py에서 먼저 매핑되었으므로 앱 내부의 urls.py에서는 해당 URL을 ‘’← 처럼 생략함.
config/usrls.py에서 처리된 URL 공통 부분 이후에 나오는 URL에 대해서는 [app]/urls.py 에서 새로 선언 및 정의하면 됨. 이 경우 최종 URL은 http://[IP]:[Port]/[App의 공통URL]/[나머지URL] 형식이 된다.
URL에서 특정 데이터를 뽑아 페이지에 전달할 때
(생략) urlpatterns = [ path('', views.func1), path("<int:var>/", views.func2), ]
url이 “http://{app_base_url}/1” 인 페이지가 요청되면 기본 url 다음에 오는 정수 데이터 1이 var에 int 형으로 저장되고 views.func2 함수에 전달된다.
views.py
화면에 출력될 내용을 정의
from django.http import HttpResponse def index(request): return HttrResponse("안녕하세요 pybodp에 오신 것을 환영합니다.")
HttpResponse: 요청에 대한 응답에 사용.
request: HTTP 요청 객체
'Backend > Django' 카테고리의 다른 글
django 입문(6) 장고관리자 admin (1) 2023.07.12 django 입문(5) Model 1) 기본 사용법 (0) 2023.07.10 django 입문(4) CRUD 기본 작업 (1) 2023.07.07 django 입문(2) 앱 생성 ~ Routing(URL 관리) (0) 2023.05.29 django 입문(1) 프로젝트 생성~서버 실행 (0) 2023.05.29