找不到页(404)django

时间:2014-02-20 02:45:28

标签: python django

任何人都可以帮我解决这个问题。当我尝试访问时,我收到以下错误。

请求方法:GET 请求网址:
使用myproject.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式: ^管理员/ ^ myproject / $ [name ='home'] 当前的URL与任何这些都不匹配。 你看到这个错误,因为你的Django设置文件中有DEBUG = True。将其更改为False,Django将显示标准的404页面。

urls.py

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Examples:
#url(r'^$', 'myproject.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
url(r'^booking/$', 'booking.views.home', name ='home'),
)

views.py

from django.shortcuts import render
#..

# Create your views here.
def index(request):
    return render("Hello, guesthouse!!")

settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'booking',
)
ROOT_URLCONF = 'myproject.urls'

WSGI_APPLICATION = 'myproject.wsgi.application'

admin.py

from django.contrib import admin
from booking.models import Bookings


# Register your models here.
admin.site.register(Bookings)

谢谢你, 拉德

3 个答案:

答案 0 :(得分:4)

你得到404因为' home'在views.py中不存在或者错误地将视图命名为错误。

下面我已将视图名称更改为' home'与urls.py

中指定的视图相匹配

<强> views.py

from django.shortcuts import render

def home(request):
    """
      home view
    """
    return render("Hello, guesthouse!!")

答案 1 :(得分:1)

home中似乎没有booking.views功能。

扩展答案:每个URL规范都有几个部分告诉Django如何路由请求。在你的帖子中你有:

url(r'^booking/$', 'booking.views.home', name ='home'),

为了使映射起作用,您需要具有以下功能:

booking.views.home

这里有三个选项,第一个是实现另一个视图功能,第二个是您可以将booking.views.index重命名为booking.views.home,第三个是您可以将网址规格更改为以下内容:

url(r'^booking/$', 'booking.views.index', name ='home'),

所有这三个选项都假设您有一个目录结构,如:

|-<project_root_dir>
|   |
|   |- <project>
|   |- booking
|   |     |- <other files>
|   |     |- views.py

答案 2 :(得分:0)

您的错误在urls.py中。你的最后一个模式不正确。我认为应该是

url(r'^booking/$', 'booking.views.index'),