2013-06-05 10 views
5

私はこの行を理解しようとしています:url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),からDjango's tutorialビューを作成する方法について。特にDjangoのURLconfを理解する

、私は次のことを理解していない?

  • P
  • D +
  • 名= '詳細' \は

urls.py

urlpatterns = patterns('', 
    # ex: /polls/ 
    url(r'^$', views.index, name='index'), 
    # ex: /polls/5/ 
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'), 
    # ex: /polls/5/results/ 
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'), 
    # ex: /polls/5/vote/ 
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'), 
) 

答えて

9
  • (?P<poll_id>...)は、named groupを作成します。そのグループで一致したものを名前で参照できるようになりました。

    ビューには、呼び出されるとその名前のキーワードパラメータが渡されます。

  • \dは、文字グループであり、数値と一致します(ASCIIデータの場合は09)。 +は量子です。 1桁以上の数字だけが一致します。

  • はURLパターンを名前にします。後で逆URLを作成するときに名前で参照できるようにします。 DjangoマニュアルのNaming URL patternsを参照してください。

すべてのすべては、そのパターンはpoll_idパラメータとしてマッチした数字を渡し、views.detailビューを呼び出すためにはDjangoを引き起こし、ちょうど/スラッシュに続く数字で始まるURLを、一致しました。 nameキーワードは、このビューにURLを生成することが容易になります:

{% url 'name' poll.id %} 

http://yourserver/[digits of poll.id]/にURLが生成されます。

+0

+1非常に有益な回答です、ありがとうございます。 – Anthony

関連する問題