В чем разница между urls.py в папке проекта и папке приложения в django? - PullRequest
1 голос
/ 25 октября 2019

В django есть концепция, которая меня немного ослепляет. Почему мы должны сделать urls.py в нашей папке приложения, а у нас есть в папке проекта.

Какую конкретную работу выполняет каждая из них? ?

как оба связаны друг с другом, например, как они взаимодействуют друг с другом, чтобы создать веб-сайт Django?

1 Ответ

1 голос
/ 25 октября 2019

urls.py в папке вашего проекта - это "базовые" URL-адреса для вашего сайта. Затем вы можете пересылать запросы, сделанные по определенному маршруту, на urls.py вашего приложения, используя include.

. Вот пример:

# project's urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp/', include("myapp.urls")) # requests on a route starting with "myapp/" will be forwarded to "myapp.urls"
]

А затем в myapp.urls:

# myapp's urls.py
from django.urls import path
from . import views

app_name = "myapp"

urlpatterns = [
    path("", views.index, name="index"),
    path("contact/", views.contact, name="contact")
]

Так, например, если я запрашиваю "localhost: 8000 / myapp / contact", urls.py вашего проекта обнаружит, что он должен переслать запрос в ваше приложение myapp, которое вызовет его представление views.contact.

...