4

これらは私のdjango URLconfです:

urlpatterns = patterns('',
    ('^hello/$', hello),
    (r'^polls/$', 'mysite.polls.views.index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'mysite.polls.views.detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'mysite.polls.views.results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
    (r'^admin/', include(admin.site.urls)),
)

この正規表現の r が何をするのかわかりません:

r'^polls/$

この正規表現が何をするのかわかりません:

(?P<poll_id>\d+)

そして、私はその理由を理解していません:

(r'^admin/', include(admin.site.urls))

$兆候はありませんが、まだ機能しています...

サイトを表示するために追加する必要がある URLconf がわかりませんhttp://127.0.0.1:8000/

4

4 に答える 4

5

「r」は「生の」文字列を表し、正規表現を書き込もうとするときに楽になります (エスケープ文字をエスケープすることはありません)。http://docs.python.org/library/re.html#raw-string-notation

2 番目の質問に関する限り、1 桁以上の名前付き一致グループを作成し、その値を「poll_id」としてビューに渡します。http://docs.djangoproject.com/en/1.2/topics/http/urls/#named-groups

管理文字列に $ がない理由は、/admin で始まるすべての URL を管理アプリに渡す必要があるためです。$ は、文字列の末尾を定義する特殊文字です。したがって、$ がある場合、/admin/foo または /admin/foo/bar ではなく、URL /admin のみが管理アプリに渡されます。

于 2010-06-21T14:33:54.040 に答える
1

私のpython正規表現はさびていますが、ここに行きます:

r'^polls/$

手段は^から始まります。終わりを意味
する$

(?P<poll_id>\d+)\d+私のコードで変数に入れられる整数を意味しますpoll_id

(r'^admin/', include(admin.site.urls))
URL を $ で終わらせたくない場合があるため、$ はありません。admin/somethingelse を admin.sites.urls クラスに渡す必要があります。

于 2010-06-21T14:38:14.190 に答える
1

ドキュメントを読むhttp://docs.djangoproject.com/en/1.2/topics/http/urls/#topics-http-urls

于 2010-06-21T14:33:04.330 に答える
0

r、提供された文字列が生であり、エスケープ文字を無視する必要があることを意味します。別の URL conf のインクルードであるため、この(r'^admin/', include(admin.site.urls))行には noが含まれています。$したがって、最後$は のどこかにありadmin.site.urlsます。

于 2010-06-21T14:41:15.043 に答える