【问题标题】:Understanding Django's urlconf了解 Django 的 urlconf
【发布时间】:2013-06-01 16:28:19
【问题描述】:

我正在尝试理解这一行:url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'), from Django's tutorial on how to create views。

特别是,我不明白以下内容:

  • ?P
  • \d+
  • name='详细信息'

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'),
)

【问题讨论】:

    标签: python regex django


    【解决方案1】:
    • (?P&lt;poll_id&gt;...) 创建一个named group;您现在可以按名称引用该组中匹配的任何内容。

      视图将在调用时通过该名称传递一个关键字参数。

    • \d 是一个字符组,它匹配数字(09 用于 ASCII 数据)。 + 是一个量词;只有 1 个或多个数字会匹配。

    • name='detail' 命名 URL 模式,以便您稍后在创建反向 URL 时通过名称引用它。请参阅 Django 手册中的Naming URL patterns

    总而言之,该模式匹配一​​个以数字开头的 URL,后跟一个 / 斜杠,导致 Django 调用 views.detail 视图,并将匹配的数字作为 poll_id 参数传递。 name 关键字可以轻松生成指向该视图的 URL:

    {% url 'name' poll.id %}
    

    将生成一个指向 http://yourserver/[digits of poll.id]/ 的 URL。

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 2013-08-11
      • 1970-01-01
      • 2012-03-17
      • 2011-05-26
      • 1970-01-01
      • 2020-09-01
      • 2017-07-05
      相关资源
      最近更新 更多