python - 将 'path('accounts/',include('django.contrib.auth.urls'))' 添加到 django 项目的 urls.py 文件有什么意义?
问题描述
伙计们,我刚刚开始学习 Django,无法'path('accounts/',include('django.contrib.auth.urls'))'
在 django 项目的 urls.py 文件中使用。这是我的根urls.py
文件:
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.HomePage.as_view(),name='home'),
path('accounts/',include('accounts.urls',namespace='accounts')),
path('accounts/',include('django.contrib.auth.urls')),
path('test/',views.TestPage.as_view(),name='test'),
path('thanks',views.ThanksPage.as_view(),name='thanks'),
path("posts/", include("posts.urls", namespace="posts")),
path("groups/",include("groups.urls", namespace="groups")),
]
这是我urls.py
的帐户应用程序:
urlpatterns = [
path('login/',auth_views.LoginView.as_view(template_name='accounts/login.html'),
name="login"),
path('logout/',auth_views.LogoutView.as_view(), name="logout"),
path('signup/',views.SignUp.as_view(),name='signup'),
]
从上面可以看出,accounts 应用程序使用 LoginView 和 LogoutView 来实现登录和注销功能。(注册视图使用 UserCreationForm)。我还删除'path('accounts/',include('django.contrib.auth.urls'))'
并尝试运行服务器。显然,一切似乎都运行良好(登录、注销和注册)。那么,通过将其包含在 中,我们到底得到了urls.py
什么?
解决方案
好吧,假设您有很多应用程序并且每个应用程序都有一些urls
,如果您不使用包含,则应该将所有 url 添加到一个文件中,这将使您的基本urls
文件非常混乱,并且您的一些urls
可能会相互覆盖。例如,您决定调用一个example 1
具有相似 url 路径的视图来example 2
查看,但 url 将请求重定向到错误的视图,因此 include 也可以通过某些方式(例如namespacing
)隔离 url。另请注意,有时您必须使用 include(例如包括router.urls
DRF)。包括还可以让您更快、更轻松地调试 url。您可以在此处阅读有关 Django 文档中包含的更多信息。
推荐阅读
- azure - 通过 Azure 创建应用服务托管证书
- javascript - create-react-app 错误:找不到模块“react-scripts/scripts/init.js”
- firebase - 是否可以使用 firebase 身份验证来获取 google 的组织信息?
- java - Spring boot:如何使 ContentType 标头完全可选?如果未通过,它会抛出 HttpMediaTypeNotSupportedException
- python - 将“requests_html”与“FastAPI”一起使用
- selenium-chromedriver - selenium -> chromedriver.exe -> 消息:未知错误:找不到 Chrome 二进制文件
- python - 从 Python 中的多人属性列表中为 n 人创建一些列表
- ssh - 通过 SSH 连接到 Raspberry PI 时出现问题
- python - 如何强制 Pygame 2.0.0 使用最新版本的 SDL?
- javascript - JS中的Bigint破坏了数组排序?