Маршрутизация
В директории нашего проекта перейдём в файл 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
.