找不到Django网址模式

时间:2019-03-30 07:58:49

标签: python django

我遵循了一个教程,允许用户注册帐户,但是似乎找不到url路径。设置名称后,我可以访问127.0.0.1:8000/帐户/注册,但不能访问127.0.0.1:8000/signup。

我尝试将urlpatterns从路径更改为url方法,但这并不能解决问题。

我的文件结构如下:

App:
   accounts:
           urls.py
           views.py
           ...
   Server:
         settings.py
         urls.py
         ...
   templates:
            registration:
                        login.html
            base.html
            home.html
            signup.html
   manage.py

在我的Server \ urls.py中,

from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('accounts.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
    path('', TemplateView.as_view(template_name='home.html'), name='home'),
]

我的帐户\ urls.py中有

from django.urls import path

from . import views


urlpatterns = [
    path('signup/', views.SignUp.as_view(), name='signup'),
]

我得到的错误是

Using the URLconf defined in Server.urls, Django tried these URL patterns, in this order:
   admin/
   accounts/
   accounts/
   [name='home']
The current path, signup, didn't match any of these.

我不太确定发生了什么,因为我还是Django的新手,并在学习过程中忙于学习。

1 个答案:

答案 0 :(得分:5)

path('accounts/', include('accounts.urls')),

表示来自accounts.urls的所有URL均应以accounts/开头。 如果那不是您想要的-将其编辑为

path('/', include('accounts.urls')),

accounts.urls将被视为顶级网址。