【文件属性】:
文件名称:给视图函数传递额外参数-libmodbus源码解析
文件大小:7.37MB
文件格式:PDF
更新时间:2024-07-14 01:47:19
PDF
7.5给视图函数传递额外参数
URL 配置允许向视图函数传递额外的参数,这些参数放在一个 Python 字典中。django.conf.urls.url()函数
的第三个参数是可选的,如果指定,应该是一个字典,指定要传给视图函数的额外关键字参数及其值。例
如:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^reviews/(?P[0-9]{4})/$',
views.year_archive,
{'foo': 'bar'}
),
]
对这个示例来说,请求 /reviews/2005/时,Django 调用 views.year_archive(request, year='2005',
foo='bar')。聚合(syndication)框架通过这种方式把元数据和选项传给视图(参见第 14 章)。
处理冲突
有可能 URL 模式捕获了具名关键字参数,又在第三个参数中传递同名的参数。此时,Django
使用字典中的参数,而不是从 URL 中捕获的参数。
7.5.1给 include()传递额外参数
同样,也可以为 include()传递额外参数。此时,被引入的 URL 配置中的每一行都将收到额外的参数。例
如,下述两个 URL 配置的作用是一样的。
第一个 URL 配置:
# main.py
from django.conf.urls import include, url
urlpatterns = [
url(r'^reviews/', include('inner'), {'reviewid': 3}),
]
# inner.py
from django.conf.urls import url
from mysite import views
7.5 给视图函数传递额外参数 - 105