ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Django] Template 및 View 구현하기
    파이썬/Django 2023. 1. 5. 18:00
    728x90
    반응형

    📁 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
Designed by Tistory.