【django】Using the URLconf defined in MySite.urls, Django tried these URL patterns, urls配置错误页面跳转失败

【python 版本】3.7       【django版本】3.0

【项目结构】

【django】Using the URLconf defined in MySite.urls, Django tried these URL patterns, urls配置错误页面跳转失败_第1张图片

小声bb:我在网上找了很多解决方法,感觉都大同小异的,但是都没能解决我的问题,我的错误应该是其中的一种,希望能帮和我错一样的人解决。

一、报错信息 

Page not found (404)

Request Method: GET
Request URL: http://127.0.0.1:8000/templates/description.html

Using the URLconf defined in MySite.urls, Django tried these URL patterns, in this order:

  1. ^$
  2. ^$

The current path, templates/description.html, didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

二、错误描述

    我的功能是点击一个按钮从index页面跳转到description页面,但是不管我怎么改路径总是报错。

    以下是我的代码(按按钮跳转),按这个按钮可以跳转到description的页面。


    

    我的urls和view都配置好了的。

三、错误代码

    在我的urls.py中,我的代码是

from django.conf.urls import url

from . import view
 
urlpatterns = [
    url(r'^$', view.index), #^$意思是以任意字母开头
    url(r'^$', view.des),
]

    对应的view.py里面是

from django.shortcuts import render

def index(request):
    return render(request, 'index.html')

def des(request):
    return render(request, 'description.html')

    我本来的想法是,一打开127.(省略)就进入主页,然后在后面点击按钮进入description页面。

四、错误原因

    关键在于对urls.py里面的urlpatterns的理解错误,按照我的错误代码电脑解析的是遇见第一个任意的url,执行view中的index类,因此跳转到index页面,而我这里的第二个url(r'^$')不会有机会执行!因此电脑会报错!因为电脑在解析按钮跳转的时,根据urlpatterns按顺序匹配到的是第一个,执行的是index类,而在index类中没有description.html,因此报错找不到!

五、错误改正

    知道了错误原因就很好办了,将urls.py中的第二个url改成

url(r'^templates', view.des),

    即修改后的urls.py为

from django.conf.urls import url

from . import view
 
urlpatterns = [
    url(r'^$', view.index),
    url(r'^templates', view.des), #意思是以templates开头的路径
]

    这样在遇到时系统会自行匹配到第二个url,因此会执行view中的des类,页面就可以跳转了。

你可能感兴趣的:(Django)