Как сделать несколько урлов в джанго?

В Django можно настроить несколько URL-адресов для одной и той же веб-страницы или для разных веб-страниц. Это делается с использованием механизма URL-сопоставления Django.

Для создания нескольких URL-адресов в Django вам потребуется следующее:

1. Создайте файл urls.py в каждом приложении в вашем проекте Django. Этот файл будет содержать всю логику маршрутизации URL-адресов для данного приложения.

2. Определите функцию-обработчик, которая будет вызываться при обращении по определенному URL-адресу. Функция-обработчик должна принимать входные параметры request (объект запроса) и возвращать HttpResponse (объект ответа).

3. В каждом файле urls.py определите список URL-сопоставлений. URL-сопоставления содержат две части: регулярное выражение для сопоставления URL-адреса и функцию-обработчик для вызова при совпадении URL-адреса.

4. В главном файле urls.py вашего проекта Django, объявите include для каждого приложения, чтобы добавить его URL-сопоставление в глобальный маршрут.

Примеры:

1. Один URL-адрес, не зависящий от метода HTTP:

from django.urls import path
from . import views

urlpatterns = [
    path('example/', views.example_view),
]

2. Несколько URL-адресов, зависящих от метода HTTP:

from django.urls import path
from . import views

urlpatterns = [
    path('example/', views.example_view),
    path('example/<int:id>/', views.example_detail_view),
]

В этом примере <int:id> - это параметр, который передается в example_detail_view.

3. Варианты маршрутизации с использованием регулярных выражений:

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'^example/(?P<slug>[-w]+)/$', views.example_view),
    re_path(r'^example/(?P<year>[0-9]{4})/$', views.example_year_view),
]

В этом примере (?P<slug>[-w]+) и (?P<year>[0-9]{4}) - это именованные группы, которые передаются в соответствующие функции-обработчики как параметры.

Также, используя пространство имен app_name, можно предотвратить конфликты с именами URL-адресов между разными приложениями.

Например:

from django.urls import path
from . import views

app_name = 'example'

urlpatterns = [
    path('example/', views.example_view, name='example'),
    path('example/<int:id>/', views.example_detail_view, name='example-detail'),
]

В этом примере app_name='example' задает пространство имен для URL-адресов этого приложения, и вы можете ссылаться на них, используя синтаксис app_name:имя_урла (например, 'example:example-detail').

Это лишь основы создания нескольких URL-адресов в Django. Вы можете настроить более сложные маршруты, использовать регулярные выражения и другие возможности Django для управления URL-сопоставлениями в вашем проекте.