各位,我剛剛開始學習 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
文件非?;靵y,并且某些應用程序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
提交
取消