项目文件夹中的 urls.py 和 django 中的 app 文件夹有什么区别?
what are the differences between urls.py in project's folder and app folder in django?
在 django 中有一个概念让我眼花缭乱 bit.Why 我们应该在我们的应用程序文件夹中创建一个 urls.py 而我们在项目文件夹中有一个。
每个人的具体工作是什么?
两者如何相互关联,例如,它们如何相互交互以制作 Django 网站?
项目文件夹中的 urls.py
是您站点的 "base" URL。
然后,您可以使用 include
.
将在特定路线上发出的请求转发到您应用的 urls.py
这是一个例子:
# 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
.
在 django 中有一个概念让我眼花缭乱 bit.Why 我们应该在我们的应用程序文件夹中创建一个 urls.py 而我们在项目文件夹中有一个。
每个人的具体工作是什么?
两者如何相互关联,例如,它们如何相互交互以制作 Django 网站?
项目文件夹中的 urls.py
是您站点的 "base" URL。
然后,您可以使用 include
.
urls.py
这是一个例子:
# 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
.