-
[Django] Template 및 View 구현하기파이썬/Django 2023. 1. 5. 18:00728x90반응형
📁 config/urls.py
from django.contrib import admin from django.urls import path from rooms import views urlpatterns = [ path('admin/', admin.site.urls), path("rooms", views.say_hello), ]
- urlpatterns는 path를 모아둔 리스트이다.
- path(이동할 url, 실행할 함수)
📁 rooms/views.py
from django.shortcuts import render from django.http import HttpResponse def say_hello(request): return HttpResponse("hello!")
그리고 /rooms 로 이동하면 아래와 같은 화면이 보이는 것을 확인할 수 있다.
rooms url 파일 따로 만들기
📁 rooms/urls.py
from django.urls import path from . import views urlpatterns = [ path("", views.say_hello), ]
path의 url이 "" 빈칸인 이유는 이 상태에서 이미 rooms/ 내부에 있기 때문이다.
views에 있는 say_hello 함수를 import 하고 path의 인자로 넣어준다.
📁 config/urls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path("rooms/", include("rooms.urls")), ]
include로 rooms의 urls 파일을 참고한다.
url에 변수 받기
room/1
room/2
위와 같은 방식으로 url에 변수를 받아보자.
urlpatterns 리스트에 path에 url을 넣어줄 때 아래와 같이 입력한다.
path("<int:room_id>", 실행할 함수)
변수의 원하는 자료형을 넣어주고 콜론: 뒤에 변수 이름을 정해준다. 변수 이름은 마음대로 짓는다.
문자열 자료형으로 변수를 받고 싶다면 아래와 같이 입력하면 되겠다.
path("<str:room_name>", 실행할 함수)
📁 rooms/urls.py
from django.urls import path from . import views urlpatterns = [ path("", views.see_all_rooms), path("<int:room_id>", views.see_one_room), ]
모든 숙소 정보를 보는 함수와 하나의 숙소 정보를 보는 함수를 만들어준다.
📁 rooms/views.py
def see_one_room(request, room_id): return HttpResponse(f"see room with id: {room_id}")
대신에 실행할 함수에 입력받을 변수 room_id 를 반드시 인자로 넣어주어야 한다.
전체코드
📁 rooms/views.py
from django.shortcuts import render from django.http import HttpResponse def see_all_rooms(request): return HttpResponse("see all rooms") def see_one_room(request, room_id): return HttpResponse(f"see room with id: {room_id}")
LIST'파이썬 > Django' 카테고리의 다른 글
[Django] Rest 프레임워크로 [GET] API 만들기 (feat. api_view, serializer) (0) 2023.01.08 [Django] 어드민 액션 추가하기, 필터 만들기 (0) 2023.01.07 [Django] 어드민 페이지 디테일 수정하기 (0) 2023.01.04 [Django] Reverse Accessors, 외래키 Foreign Key (0) 2023.01.03 [Django] ORM, QuerySet, Lookup (0) 2023.01.03