gpt4 book ai didi

python - Django:从模板文件中可用的 URL 捕获的信息?

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:48 24 4
gpt4 key购买 nike

给定:

urlpatterns = \
patterns('blog.views',
(r'^blog/(?P<year>\d{4})/$', 'year_archive', {'foo': 'bar'}),
)

在 urls.py 文件中。 (它应该是 'archive_year' 而不是'year_archive' 的? - 请参见下文。)

是否可以从 URL 中获取信息匹配(在本例中为“year”的值)用于可选词典?例如:年的值而不是“酒吧”?

用年份替换 'bar' 会导致:“NameError ...名称“年”未定义”。

以上只是一个例子;我知道那一年是在 archive_year 的模板 HTML 文件中可用,但 archive_month 并非如此。还有可以是 URL 中表示的自定义信息在模板 HTML 文件中需要。

(示例来自页面“URL dispatcher”,“Passing查看功能的额外选项”, http://docs.djangoproject.com/en/dev/topics/http/urls/ ,在 Django 文档中。)

最佳答案

不,这在 URLConf 中是不可能的——调度程序有一组固定的事情要做。 (它从您的正则表达式匹配中获取组字典,并将其作为关键字参数传递给您的 View 函数。)在您的(自定义) View 函数中,您应该能够操纵这些值如何传递到模板上下文中。

在给定此 URLConf 的情况下编写自定义 View 以将年份映射到“foo”将类似于:

def custom_view(request, year, foo):
context = RequestContext(request, {'foo': year})
return render_to_response('my_template.tmpl', context)

在您描述的情况下,您得到 NameError 的原因是因为 Python 正在寻找周围范围内名为 year 的标识符,但它没有存在于那里——它只是正则表达式模式中的一个子字符串。

关于python - Django:从模板文件中可用的 URL 捕获的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1086531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com