Необязательные параметры маршрутов в Django
В Django у path нет синтаксиса
вроде необязательного параметра
в одной строке. Обычно делают два
маршрута: с параметром и без него,
а в представлении задают значение
по умолчанию.
Пусть нужна страница постов с номером, но если номер не указан - показывать первую страницу:
urlpatterns = [
path('posts/', views.posts),
path('posts/<int:page>/', views.posts),
]
Оба маршрута ведут в одно и то же представление. Если параметра в URL нет, сработает значение по умолчанию в аргументе функции:
from django.http import HttpResponse
def posts(request, page=1):
return HttpResponse('page ' + str(page))
Пусть дан адрес вида
/city/:city/, где в параметре
город. Сделайте так, чтобы город
был необязательным и по умолчанию
имел значение 'minsk'.
Сделайте страницу /page/
и /page/:num/. Без номера
пусть выводится страница 1.