为什么在Django的URL模式中出现“找不到页面”错误?

时间:2019-02-23 03:14:27

标签: python django

我是Django的新手,我只是想创建一个小应用程序来输出“ Hello World”。当我运行代码时,显示“找不到页面”,并给出以下原因:

  

'使用在helloworld_project.urls中定义的URLconf,Django尝试了   这些网址格式,顺序如下:

     

admin /

     

家庭/

     

空路径与这些都不匹配。”

对于为什么会这样,我有点困惑。我包括了一些代码示例。任何帮助将不胜感激!

urls.py

from django.contrib import admin
from django.urls import path
from my_app.views import HomeView
urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', HomeView.as_view())
]

views.py

from __future__ import unicode_literals
from django.shortcuts import render
from django.views.generic import TemplateView
class HomeView(TemplateView):
    template_name = 'index.html'

index.html

<html>
<head><title>Home Page</title></head>
<body>
Hello world
</body>
</html>

2 个答案:

答案 0 :(得分:0)

如果您在端口(例如8000)中运行Django,则网址:

localhost:8000/

是空模式网址。

根据您的URL定义,您必须:

localhost:8000/home/

或将您的网址更改为:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('^$', HomeView.as_view())    # Point the empty pattern to your view.
]

答案 1 :(得分:0)

您需要更改网址,例如:

<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.0/dist/jquery.validate.js"></script>
  </head>
<body>
<form id="user-form" action="#">
  <label>comment: </label>
  <textarea id="comment" name="comment" required="" minlength="2" maxlength="20"></textarea><br>
  <input type="submit">
</form>
<script type="text/javascript">
$(document).ready(function() {
  $('#user-form').validate({
    rules: {
      comment: {
        required: true,
        minlength: 2,
        maxlength: 20
      }
    }
  })
})
</script>
<style>
.error {
  color: red;
}
</style>
</body>

之所以会出现错误,是因为在您运行项目时,它会寻找一个像urlpatterns = [ path('', someview), path('admin/', include(admin.site.urls) ), path('home/', HomeView.as_view(), name='somename') ] 这样的空URL,而不是localhost:8000/