3

「リスト」と呼ばれる1つのアプリがある単純なdjangoセットアップがあります。今http://127.0.0.1:8000/lists、このアプリを紹介したいと思います。そこで、メインの urls.py を次のように変更しました。

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

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^lists/', include('lists.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

そして、リストフォルダー(私のアプリはリストと呼ばれます)にあるurls.pyを次のように変更しました:

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

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

私が知る限り、djangoチュートリアルの指示に完全に従っていますが、http://127.0.0.1:8000/lists(末尾のスラッシュなしで)アクセスすると、次のエラーが表示されます:

Page not found (404) Request Method:    GET Request URL:    http://127.0.0.1:8000/lists

Using the URLconf defined in companyLists.urls, Django tried these URL patterns, in this order:

    ^lists/
    ^admin/

The current URL, lists, didn't match any of these.

http://127.0.0.1:8000/lists/そして(末尾のスラッシュで)訪問する、次のエラーが表示されます:

Page not found (404) Request Method:    GET Request URL:    http://127.0.0.1:8000/lists/

Using the URLconf defined in companyLists.urls, Django tried these URL patterns, in this order:

    ^admin/

The current URL, lists/, didn't match any of these.

末尾のスラッシュを含む URL にアクセスすると、^lists/ が検索されない理由がわかりません。ここで私が間違っていることを誰かが知っていますか?

すべてのヒントは大歓迎です!

4

1 に答える 1

11

patternsin リストの先頭に空の文字列がありませんurls.py

これを試して:

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

空白の文字列は、DRY プリンシパルを支援するために使用できるビューのプレフィックスです。ビュー パスのプレフィックスとして使用されます。

例(上記の例を拡張):

ではなく:

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^homepage$', views.homepage, name='index'),
    url(r'^lists$', views.lists, name='index'),
    url(r'^detail$', views.detail, name='index'),
)

以下を使用できます。

urlpatterns = patterns('views',
    url(r'^$', index, name='index'),
    url(r'^homepage$', homepage, name='index'),
    url(r'^lists$', lists, name='index'),
    url(r'^detail$', detail, name='index'),
)

複数のビュー プレフィックスを使用するには、urlpatterns.

urlpatterns = patterns('views',
    url(r'^$', index, name='index'),
    url(r'^homepage$', homepage, name='index'),
    url(r'^lists$', lists, name='index'),
    url(r'^detail$', detail, name='index'),
)

urlpatterns += patterns('more_views',
    url(r'^extra_page$', extra_page, name='index'),
    url(r'^more_stuff$', something_else, name='index'),
)
于 2013-05-14T16:06:09.737 に答える