from django.conf.urls import url
from .import views
urlpatterns = [
url(r'^$', views.index,name='index'),
url(r'^About/', views.About,name='About'),
url(r'^checkout/', views.checkout,name='checkout'),
url(r'^contact', views.contact,name='contact'),
url(r'^faqs', views.faqs,name='faqs'),
url(r'^help', views.help,name='help'),
url(r'^icons', views.icons,name='icons'),
url(r'^payment', views.payment,name='payment'),
url(r'^privacy', views.privacy,name='privacy'),
]
错误消息:
Page not found (404)
Request Method:
GET
Request URL:
http://127.0.0.1:8000/About.html
Using the URLconf defined in shop.urls, Django tried these URL patterns,
in this order:
admin/
^$ [name='index']
^about/$ [name='about']
^checkout/$ [name='checkout']
^contact/$ [name='contact']
^static\/(?P<path>.*)$
The current path, About.html, didn't match any of these.
答案 0 :(得分:3)
这种错误可能在2个或3个不同的情况下发生。 就您而言,您似乎在浏览器地址栏中输入了错误的URL。
您正确的URL应该为http://127.0.0.1:8000/About(如您在URL模式中所写)。
请记住,About.html-是您在模板文件夹中创建的HTML模板。即使您路由到html页面(使用诸如app_name / About.html之类的字符串)-地址栏中的实际URL仍将根据您在正则表达式路径r'^ url_name'中编写的内容来确定。如果以url模式编写r'^ About.html',那么http://127.0.0.1:8000/About.html应该可以正常工作。
第二种情况(根据我的经验)可能会产生这种类型的错误,是当您忘记在相应的views.py文件中的定义URL视图的方法内部传递“ request”参数时。
您应该有一个名为About的方法,它在views.py
中看起来像这样
def About(要求):
返回render(request,'app_name / About.html')
如果您忘记在About主题中传递参数,则可能会发生这种错误。
最后,如果您使用的是django 2,请开始使用re_path方法提供正则表达式网址格式。 url方法可能在将来的版本中被弃用。
答案 1 :(得分:1)
您的URL不会是http://127.0.0.1:8000/About.html,而只会是http://127.0.0.1:8000/about(记住url不区分大小写),这将带您进入名为About的视图,在该视图中,您应该引用模板呈现(about.html)
您是否已阅读我的第一个Django应用https://docs.djangoproject.com/en/2.0/intro/tutorial01/,如果您不熟悉django的操作方式,那么这是一个很好的起点
答案 2 :(得分:1)
您要输入的内容不是有效的网址,您必须按urls.py 中的说明输入http://127.0.0.1:8000/About 。
您必须了解url和html模板之间的区别,该 About.html 将在渲染时用于视图中,例如:
return render(request, 'your_app/about.html')
如果可以这样,请确保可以写一个URL:
urlpatterns = [
url(r'^$', views.index,name='index'),
url(r'^About.html/', views.About,name='About'),
.
.
]
答案 3 :(得分:0)
您在url()方法中提供的url不包含任何.html后缀
您可以通过/ About
直接转到“关于”页面