2017-11-13 9 views
0

私はちょうどDjangoを始めました。 初めて「localhost:8000/first_app」を読み込んでいるときにindex()を読み込んでいますが、「About」リンクをクリックするとURLは「localhost:8000/first_app/about /」に変わりますが、 "about()"ではなく "index()"を読み込んでいます。私が何が欠けているのか分からない。Djangoは2番目のページをロードしません

ここに私のプロジェクトのURLです:

​​

アプリケーションのURL:

from django.conf.urls import patterns, url 
from first_app import views 

urlpatterns = patterns('', 
     url(r'^$', views.index, name='index'), 
     url(r'^about/', views.index, name='about'), 
) 

そしてviews.py:

from django.http import HttpResponse 

def index(request): 
    return HttpResponse("Rango says: Hello world! <br/> <a href='/first_app/about'>About</a>") 

def about(request): 
    return HttpResponse("This is the ABOUT page! <br /> <a href='/first_app/'>Index</a>") 

私はジャンゴ1.7とPython 2.7を使用しています。おかげさまで

答えて

1

このようにURLを定義する必要があります。

基本的に
urlpatterns = patterns('', 
    url(r'^about/$', views.about, name='about'), 
    url(r'^/$', views.index, name='index'), 
) 

'^$'試合の始まり&終わりです。 ^はパターン&の先頭です。$はパターンの最後ですので、URLを定義するときは注意してください。 $を使用してURLを終了すると、パターンの一致後にURLに何を追加しても表示が表示されなくなります。

+0

まだ動作していません – Amit

+0

あなたの '^ about /' urlがあなたの 'index()'ビューを実際に指しているからです。 –

+1

間違っています。 ''^$ ''は何も一致しません。ここでの注文は重要ではありません。唯一のエラーは、両方のURLが 'views.index'で同じビューを指していたことです。正規表現についてはあまりにも多く一致します。 'about/this/is/stupid /'のように。正規表現は '$ 'で終わるべきです:' r'^about/$ ''。 – allcaps

関連する問題