Перейти к содержанию

Маршрутизация

В директории нашего проекта перейдём в файл urls.py и зарегистрируем маршруты для админ-панели и для нашего приложения:

laboratory_work_2/urls.py
from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("flights.urls")),
]

Теперь в директории нашего приложения создадим файл urls.py и пропишем маршруты для каждого представления:

flights/urls.py
from django.urls import path

from . import views

urlpatterns = [
    path("", views.view_flights, name="view_flights"),
    path("my/<str:tab>/", views.view_bookings, name="view_bookings"),
    path("flight/<int:flight_id>/book/", views.book_flight, name="book_flight"),
    path("booking/<int:booking_id>/delete/", views.delete_booking, name="delete_booking"),
    path("flight/<int:flight_id>/feedback/", views.give_feedback, name="give_feedback"),
    path("flight/<int:flight_id>/", views.flight_details, name="flight_details"),
    path("register/", views.register_request, name="register"),
    path("login/", views.login_request, name="login"),
    path("logout/", views.logout_request, name="logout"),
]

Для каждого маршрута пропишем значение аргумента name, чтобы можно было на них ссылаться.

Также для некоторых маршрутов мы использовали конвертеров типов. Например, <str:tab> передаст в наше представление аргумент tab типа str, а <int:flight_id> передаст аргумент flight_id типа int.