【问题标题】:Django page not found with include pattern找不到包含模式的 Django 页面
【发布时间】:2016-06-10 15:34:41
【问题描述】:

我有一个与 django 和 urls.py 文件有关的问题。 在教程期间,我创建了一个来自 openclassroom 的小程序。 我已经能够在 projectname 文件夹/urls.py 中正确设置 URL 以使其工作。现在我想将 URL 放在 app 文件夹中,并在项目名称文件夹/urls.py 中引用它们,但是当我尝试使用该页面时,它告诉我它不存在。 我正在使用 python 3.4 和 django 1.9.7。 该程序称为creps_bretonnes。

我的creps_bretonnes/urls.py:(我尝试了不同版本的urlpatterns但没有成功)

 from django.conf.urls import patterns, include, url
from django.contrib import admin
from blog import views
"""
urlpatterns = [
    # url(r'^accueil$', views.home),
    # url(r'^blog/', 'blog.urls'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^blog/', include('blog.urls')),

]
"""
urlpatterns = patterns('',
    url(r'^blog/', include('blog.urls')),
)

我的 blog.urls.py:

from django.conf.urls import patterns, include, url
from . import views

#urlpatterns = patterns('blog.views',
#    url(r'^accueil$', 'home'),
#)
urlpatterns = [
    url(r'^accueil$', views.home),
]

这是我从页面http://localhost:8000/blog/accueil/得到的消息

找不到页面 (404)

请求方法:GET

请求网址:http://localhost:8000/blog/accueil/

使用 creps_bretonnes.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:

  1. ^blog/ ^accueil$

当前网址 blog/accueil/ 与其中任何一个都不匹配。

您看到此错误是因为您的 Django 设置文件中有 DEBUG = True。将其更改为 False,Django 将显示标准 404 页面。

我被困在这里,不知道如何继续。有人可以帮忙吗?

谢谢, SP

【问题讨论】:

    标签: django


    【解决方案1】:

    您尝试了 url http://localhost:8000/blog/accueil(没有尾部斜杠),但您的 url 模式是 ^accueil$(没有尾部斜杠)。

    您可以将网址格式更改为:

    url(r'^accueil/$', views.home),
    

    或者您可以在http://localhost:8000/blog/accueil 访问现有的网址格式。

    对于 Django,在 url 模式中包含尾部斜杠更为常见,因此我推荐第一种方法。

    【讨论】:

    • 您好,感谢您的帮助。只是为了理解,它实际上是相同的 url 模式。那为什么会有不同的解释呢?
    • 没有不同的解释。如果你在creps_bretonnes/urls.py 中使用url(r'^accueil/$', views.home),,那么http://localhost:8000/accueil 会起作用,但http://localhost:8000/accueil/ 会给出类似的404 错误。
    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2016-08-01
    • 2015-10-22
    • 2014-03-20
    • 2019-01-22
    相关资源
    最近更新 更多