<int:question_id>有什么作用?

时间:2019-10-14 08:21:24

标签: django python-3.x

我正在学习Django,代码“ int:question_id”中有一个表达式,我没有得到。

from django.urls import path

from . import views

urlpatterns = [

    path('', views.index, name='index'),

    path('<int:question_id>/', views.detail, name='detail'),

    path('<int:question_id>/results/', views.results, name='results'),

    path('<int:question_id>/vote/', views.vote, name='vote'),
]

3 个答案:

答案 0 :(得分:1)

这是描述URL模式的惯用方式。这意味着:

  

此刻,预期URL中将存在一个整数(int),并将其绑定到question_id方法的views.results自变量。

因此,如果您具有路径“ / 12 / results”,则将像这样调用相应的方法views.results

results(request, question_id=12)

答案 1 :(得分:0)

我喜欢这样: 例如,如果单击链接my-domain.com/12,则12将传递到“详细” URL,并因此传递到view.detail。因此,您的视图应如下所示:

def detail(request, question_id):
    ...

答案 2 :(得分:0)

这是一个路径转换器。

基本上,它从零到任何正数(跟随它的路径)匹配。

在您的示例中:

path('<int:question_id>/', views.detail, name='detail'),

“ question_id”路径必须是数字。

通过official documentation

快速找到路径转换器的说明