Django: 路由与视图 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

声明附加参数

在使用url()函数定义路由项时,除了利用正则模板从URL中提取视图函数需要的参数, 还可以使用一个字典,手动指定调用时需要附加的关键字参数。

例如,对于下面示例中的路由表:

urlpatterns = [
    url(r'^news/([0-9]{4})/$', v_news, {'target': 'teenager'}),
]

当用户访问/news/2013/时,Django将以如下形式调用视图函数v_news

v_news(request,year='2013',target='teenager')

也可以向整个子路由附加调用参数,这等效于在子路由中的每一项附加调用参数:

inner_patterns = [
    url(r'^archive/$', v_archive),
    url(r'^about/$', v_about),
]

urlpatterns = [
    url(r'^blog/', include(inner_patterns), {'blogid': 3}),
]

当用户访问/blog/archive/时,Django将进行如下的调用:

v_archive(request,blogid=3)
请思考一下,在什么情况下会需要向视图传入额外的参数?