【问题标题】:Django can't find URL patternDjango 找不到 URL 模式
【发布时间】:2015-12-04 04:22:47
【问题描述】:

我不明白为什么 Django 无法在我的应用程序中找到请求的 URL。

这是我得到的错误代码:

 Using the URLconf defined in littlelogsms.urls, Django tried these URL patterns, in this order:
^admin/
^$
The current URL, success/, didn't match any of these.

这是我的 sms.urls.py 文件:

from django.conf.urls import url

from sms import views

urlpatterns = [
    url(r'^success/$', views.success, name='success'),
    url(r'^$', views.index, name='index')
]

这是应用程序 urls.py 文件:

from django.conf.urls import include, url
from django.contrib import admin


urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', include('sms.urls')),
]

我找不到我正在犯的错误。有什么想法吗?

【问题讨论】:

    标签: python django django-urls


    【解决方案1】:

    这个问题是这个 url 模式中的美元符号。

    url(r'^$', include('sms.urls')),
    

    插入符号^ 匹配字符串的开头,美元$ 匹配字符串结尾,因此^$ 仅匹配索引URL /

    您应该删除美元并将其更改为:

    url(r'^', include('sms.urls')),
    

    【讨论】:

    • 谢谢!!知道这是我没有得到的非常简单的事情:)
    【解决方案2】:

    您应该尝试使用基本网址,例如

    这是应用程序 urls.py 文件:

    from django.conf.urls import include, url
    from django.contrib import admin
    urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^sms', include('sms.urls')),   # 'sms' is your defined name
    ]
    

    这是我的 sms.urls.py 文件:

    from django.conf.urls import url
    
    from sms import views
    
    urlpatterns = [
        url(r'^success/$', views.success, name='success'),
        url(r'^$', views.index, name='index')
    ]
    

    您应该尝试在您的视图中访问您的网址,就像

    sms/ //用于访问视图中的索引函数 sms/success //用于访问视图中的成功函数

    或者你可以使用模板中表单的action标签中的标签来调用url,

    {% url 'sms:index or success' %} //index,success是sms.urls中给出的命名空间

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 2014-01-01
      • 2020-08-21
      • 2014-11-18
      • 1970-01-01
      • 2017-01-18
      • 2013-08-23
      • 2011-10-05
      相关资源
      最近更新 更多