各位,我刚刚开始学习 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'), ]从上面可以明显看出,帐户应用程序正在使用 LoginView 和 LogoutView 来实现登录和注销功能。(注册视图使用 UserCreationForm)。我还删除'path('accounts/',include('django.contrib.auth.urls'))'并尝试运行服务器。显然,一切似乎都工作得很好(登录、注销和注册)。那么,通过将其包含在 中,我们到底得到了什么urls.py?
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
假设您有很多应用程序,并且每个应用程序都有一些urls
,如果您不使用 include,则应该将所有 url 添加到一个文件中,这将使您的基本urls
文件非常混乱,并且某些应用程序urls
可能会相互覆盖。例如,您决定调用一个example 1
视图,该视图具有与example 2
视图类似的 url 路径,但该 url 将请求重定向到错误的视图,因此 include 还可以通过某些方式隔离 url(例如namespacing
)。另请注意,有时您必须使用 include(例如router.urls
DRF 的 include)。包含还可以让您更快、更轻松地调试 URL。
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
这些 Django.contrib.auth.url 本身就是 url。这意味着当您包含它们时,它会自动包含一些内置的 django url,例如登录、注册、密码重置、密码重置确认等。如果您不想自己编码,这意味着创建您的自己的看法。
添加回答
举报
0/150
提交
取消