网址调度程序如何包含应用程序网址

时间:2019-12-29 05:24:40

标签: django python-3.x

我有项目urls.py

from django.contrib import admin
from django.urls import path,include                       
from django.contrib.auth import login                         
         urlpatterns = [
             path('admin/', admin.site.urls),    
             path('login/',include
             ('authorization.urls')),
         ]

关注我包含的authorization/urls.py文件

from django.urls import path                               
from . import views                                        

     urlpatterns = [
         path('login',views.login_name),
    ]

虽然我开始学习很多次面对的url调度程序逻辑

The current path, login/login/, didn't 
match any of these.

如文档所述

  

每当Django遇到include()时,它都会截断直到该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf中以进行进一步处理。

当我尝试访问登录页面时,我会看到

Using the URLconf defined   
in forecast.urls, Django tried these     
URL patterns, in this order:
 admin/
 login/ login
The current path, login/, didn't match any of these.

正如我从回溯和文档说明中看到的那样,内部路径函数包含include()函数。路径解析给定的参数,例如从我的项目中首先解析路径给定的url模式登录,而不是使用带有include函数的路径将解析的URL模式赋予包含的url。比起包含urls.py时,它用另一个url模式 login 解析了它的脸,将其链接到 login / login ,并将其赋予了附加的视图功能。

这是我的第一个问题,当我需要使用包含功能时应该如何指定网址格式

我正确理解了包含的app.urls.py中的内容吗,我不应该根据我的示例指定登录模式

谁能理解我的路径包含函数的工作方式,我可以对其进行调试

1 个答案:

答案 0 :(得分:1)

您已重复“登录”,因此请按以下步骤进行更改,以便在/ login上可用

 path('',include('authorization.urls')),