【问题标题】:what are the differences between urls.py in project's folder and app folder in django?项目文件夹中的 urls.py 和 django 中的 app 文件夹有什么区别?
【发布时间】:2019-10-25 08:18:00
【问题描述】:

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

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

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

【问题讨论】:

  • @FutureJJ,我已经知道 django 中的应用程序和项目之间的区别,我遇到的问题是有两个 urls.py 的概念,一个在项目级别,一个在应用程序级别,我只是想知道他们是如何互动的。
  • 我猜你正在寻找include 的文档,你的问题对于Stack Overflow 来说太宽泛了
  • @Sayse,我读过What’s the difference between a project and an app in Django world?,因为它没有解决我的问题,所以我被逼问这个问题。

标签: python django-2.1


【解决方案1】:

项目文件夹中的urls.py 是您网站的“基本”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 中有我们项目的基本 url,为了使我们的应用程序与我们的主项目集成,我们必须在我们的应用程序级目录中有一个 urls.py然后使其成为自己的 url,同时将这个或这些应用程序添加到我们的项目中,我们必须通过将其添加到项目级别的 urls.py 来使其可以访问我们的项目。我说的对吗?
猜你喜欢
  • 1970-01-01
  • 2011-07-02
  • 2014-03-23
  • 1970-01-01
  • 2012-09-26
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多