gpt4 book ai didi

google-app-engine - 在 Google App Engine 上的 jinja2 中,我如何(轻松地)基于带参数的路由名称构建 URL?

转载 作者:太空宇宙 更新时间:2023-11-03 15:24:21 25 4
gpt4 key购买 nike

如果我构建一个jinja环境如下:

jinja_environment = jinja2.Environment (
loader=jinja2.FileSystemLoader ((os.path.dirname (__file__), 'templates')), extensions=[])
jinja_environment.globals['url_for'] = webapp2.uri_for

在我的模板中,当路由没有定义任何参数时,我可以从路由名称构建简单的 URL:

{{ url_for('user_home') }}

但是,当路由包含由字符串定义的参数时,例如 /invoice/<:\d+> ,我无法传递任何论点。以以下所有方式调用它都失败,并带有 KeyError "Missing argument "0" to build URI." :

{{ url_for('invoice') }}
{{ url_for('invoice', args=['123']) }}
{{ url_for('invoice', kwargs={'__0__':'123'}) }}
{{ url_for('invoice',_request=None, args=['123'],kwargs={'__0__':'123'}) }}

这方面的现有示例似乎已经过时了——至少我还不能使它们起作用。我错过了什么?

最佳答案

Route('/invoice/<invoice_id>/', handler=invoice_handler, invoice_id='something')

{{ url_for('invoice', invoice_id=123) }}

您可以尝试上面的方法,Jinja 需要您定义处理程序的命名参数。

关于google-app-engine - 在 Google App Engine 上的 jinja2 中,我如何(轻松地)基于带参数的路由名称构建 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16394625/

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