url()函数中kwargs参数的用途是什么?

时间:2017-05-25 01:35:01

标签: django

Django的url()函数有三个参数:

url(regex, view, kwargs=None, name=None)

我正在尝试理解kwargs参数的使用。它的功能是否有任何实际的例子?

1 个答案:

答案 0 :(得分:0)

如果要将不同的参数传递给同一函数以获得不同的结果,这非常有用。在下面的示例中,我有一个功能,根据网址为大量的javascript提供谷歌分析模板。

#urls.py
urlpatterns = [
    url(r'^overall/$', get_analytics_information, kwargs={'template': 'analytics_overall.html'}, name='overall'),
    url(r'^content-terms/$', get_analytics_information, kwargs={'template': 'analytics_content_terms.html'}, name='content_terms'),
    url(r'^campaigns/$', get_analytics_information, kwargs={'template': 'analytics_campaigns.html'}, name='campaigns'),
]

#views
def get_analytics_information(request, template):
    ACCESS_TOKEN_FROM_SERVICE_ACCOUNT = get_access_token()
    if ACCESS_TOKEN_FROM_SERVICE_ACCOUNT:
        return render(request, '{}'.format(template), {'ACCESS_TOKEN_FROM_SERVICE_ACCOUNT': ACCESS_TOKEN_FROM_SERVICE_ACCOUNT})
    else:
        warnings.warn('Invalid service credentials')
        return render(request, 'invalid_credentials.html')