代码之家  ›  专栏  ›  技术社区  ›  J. Toney

从初学者YT教程开始,Django中出现不一致的URL错误

  •  1
  • J. Toney  · 技术社区  · 1 年前

    正如你在第一个屏幕截图中看到的,/products/new没有显示为有效的URL,尽管我完全按照YouTube的编码教程进行了操作。出于某种原因,“new”前面有一个空格,但我试图请求的当前路径中没有空格。我不知道这是否正常。如果重要的话,我使用的是django 2.1版本

    该URL确实适用于products/salt/。奇怪的是,URL曾经是products/treatment/,但我遇到了与products/new相同的错误,所以我随机将URL更改为products/salt,它开始对我有效。

    [未找到页面(404) 请求方法:GET 请求URL:http://127.0.0.1:8000/products/new/ Django使用pyshop.urls中定义的URLconf,按以下顺序尝试了这些URL模式:

    管理员/ 产品/ 产品/盐 产品/新品 当前路径products/new/与这些路径都不匹配。] 1

    from django.http import HttpResponse
    from django.shortcuts import render
    
    
    def index(request):
        return HttpResponse('Hello World')
    
    
    def trending(request):
        return HttpResponse('Trending Products')
    
    
    
    def new(request):
        return HttpResponse('New Products')[2]
    
    from django.urls import path
    from . import views
    
    
    urlpatterns = [
        path('', views.index),
        path('salt', views.trending),
        path('new', views.new)[3]
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   dev_light    1 年前

    添加尾随斜线 / 您的URL模式可以解决此问题,即。 new/ trending/ .

    正如我在评论中提到的,我建议你升级到Django的安全版本,以访问更新的功能。