2016-05-10 51 views
-2

爲什麼我在這裏得到404?Django框架 - 頁面未找到

這是我的mysite/urls.py文件:

from django.conf.urls import url, include 
from django.contrib import admin 

urlpatterns = [ 
url(r'^admin/', admin.site.urls), 
url(r'^$/', include('personal.urls')), 
] 

,這是我的mysite /個人/ urls.py文件

from django.conf.urls import url 
from . import views 
urlpatterns =[url(r'^$',views.index, name='index')] 

的mysite的/個人/ views.py

from django.shortcuts import render 

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

之後,我已經創建了像templates/personal/header.html這樣的模板文件夾。該文件看起來像這樣

<body class="body" style="background-color:#f6f6f6"> 
<div> 
    {% block content %} 
    {% endblock %} 
</div> 
</body> 

現在大約在同一文件夾中的Home.html

{% extends "personal/header.html" %} 
{% block content %} 
<p>Hey! Welcome to my website! Well, I wasn't expecting guests. Um, my name is HVS. I am a programmer.</p> 
{% endblock %} 

我也曾經在mysite的子目錄中安裝應用程序是在settings.py文件,但仍當我運行

">python manage.py runserver" 

它運行良好bt頁面告訴我URL找不到404 !!

這是我的瀏覽器輸出:

Screenshot

我使用Windows 8,蟒蛇3 &的Django 1.9

+0

您沒有提供最重要的信息:您嘗試訪問哪個網址? – DeepSpace

+0

首先,您在視圖中忘記了第一個參數'request'。順便說一句,我們需要這個URL試圖知道它正在發生什麼。 –

回答

1

您應該從主要urls.py刪除$,你有personal.urls

url(r'^/', include('personal.urls')), 

$符總是匹配字符串的結尾(即你的URL),並且您將無法在其之外添加任何其他路徑。

+0

實際上這個'r'^ /''dint適用於我,但是這樣做:'r'^ $'' –

+0

除去尾部斜線,即使用'r'^''。使用'r'^ $'適用於您的索引URL,但不適用於添加到「personal/urls.py」中的任何其他URL。 – Alasdair

1

這裏這個網址永遠不會匹配

r'^$/' 

$匹配字符串的結尾。這意味着它不可能有/

你可能想

url(r'^personal/', include('personal.urls')), 
+0

沒有任何東西似乎有效,但只有'r'^ $''。你能解釋這是爲什麼嗎? –

2

根據DJANGO docs

的包括()函數允許引用其它的URLconf。需要注意的是 的include()函數的正則表達式沒有$ 一個(結束的字符串匹配字符),而是尾隨斜線

所以你應該把它改成這樣:

url(r'^/', include('personal.urls'))