项目文件夹中的 urls.py 和 django 中的 app 文件夹有什么区别?

3 python django-2.1

在django中有一个让我有点眼花缭乱的概念。为什么我们要在我们的app文件夹中创建一个urls.py而我们在项目文件夹中有一个。

每个人的具体工作是什么?

两者如何相互关联,例如它们如何相互交互以制作 django 网站?

Ewa*_*ren 7

urls.py项目文件夹是为您的网站“基地”的网址。然后,您可以将在特定路由上发出的请求转发到您的应用程序的urls.pyusing 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"
]
Run Code Online (Sandbox Code Playgroud)

然后在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")
]

Run Code Online (Sandbox Code Playgroud)

因此,例如,如果我请求“localhost:8000/myapp/contact”,您的项目urls.py将检测到它必须将请求转发到您的 app myapp,后者将调用其 view views.contact