【问题标题】:django url is giving page not found (404) errordjango url 给出页面未找到(404)错误
【发布时间】:2019-11-20 08:51:47
【问题描述】:

我从 datacamp 教程创建的投票应用程序出现页面未找到 (404) 错误。我检查了我的代码以确保它没有错误。 admin 工作正常,但其他 url 不是。

这是来自主应用程序目录的 urls.py 代码:

from django.urls import include, path
from django.contrib import admin

urlpatterns = [
        path('blog/', include('blog.urls')),
        path('votings/',include('votings.urls')),
        path('admin/', admin.site.urls),
]

这是投票应用目录中的 urls.py:

from django.urls import path
from . import views

urlpatterns = [
        path('',views.index, name='index'),
        path('<int:question_id>/',views.detail, name='detail'),
        path('<int:question_id>/results/', views.results, name='results'),
        path('<int:question_id>/vote/', views.vote, name='vote'),
]

我正在使用 django 2.0.5。

谢谢

【问题讨论】:

  • 为什么两个 urls.py 模块相似?投票应用的 urls.py 在哪里?
  • 一个在 mysite 目录下,另一个在 mysite/votings/ 目录下。

标签: django django-urls


【解决方案1】:

除非您为投票应用程序复制了错误的urls.py 时犯了错误,否则问题一定出在它上面。

这是您项目的主要 urls.py:

from django.urls import include, path
from django.contrib import admin

urlpatterns = [
        path('blog/', include('blog.urls')),
        path('votings/',include('votings.urls')),
        path('admin/', admin.site.urls),
]

仅供参考,根据docs include() 将您的应用程序目录(在您的情况下是投票)urls.py 中的 url 添加到主 urls.py(在内存中)。这可以防止主 urls.py 变得太大而无法阅读。

这是您的 votings 应用程序 的 urls.py,它实际上是 ma​​in urls.py 的副本:

from django.urls import include, path
from django.contrib import admin

urlpatterns = [
        path('blog/', include('blog.urls')),
        path('votings/',include('votings.urls')),
        path('admin/', admin.site.urls),
]

你没发现这里有什么问题吗?没有终点。此 url 的关联视图(基于函数或基于类)在哪里?

我建议在你的views.py中写一个视图并测试一下:

投票应用views.py:

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

投票应用 urls.py:

from django.urls import include, path
from . import views

urlpatterns = [
    path('home/', views.current_datetime, name='home'),
]

【讨论】:

  • 编辑了我的原始帖子以反映正确的代码。
  • @Yasin 您能否将整个回溯连同views.py 或任何指向源代码的链接一起发布?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2013-12-04
  • 1970-01-01
  • 2014-05-19
相关资源
最近更新 更多