簡體   English   中英

理解Django的urlconf

[英]Understanding Django's urlconf

我試圖理解這一行: url(r'^(?P<poll_id>\\d+)/$', views.detail, name='detail'),來自Django關於如何創建視圖的教程

特別是,我不明白以下幾點:

  • 2 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'),
)
  • (?P<poll_id>...)創建一個命名組 ; 您現在可以通過名稱引用該組中匹配的任何內容。

    調用時,視圖將通過該名稱傳遞一個關鍵字參數。

  • \\d是一個字符組,它匹配數字(ASCII數據為09 )。 +是量詞; 只有一個或多個數字匹配。

  • name='detail'命名URL模式,以便稍后在創建反向URL時按名稱引用它。 請參閱Django手冊中的命名URL模式

總而言之,該模式匹配以數字開頭的URL,后跟一個/斜杠,導致Django調用views.detail視圖,將匹配的數字作為poll_id參數傳遞。 name關鍵字可以輕松生成此視圖的URL:

{% url 'name' poll.id %}

會生成一個URL到http://yourserver/[digits of poll.id]/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM