Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何在模板中使用webapp2.uri_?_Google App Engine_Django Templates_Webapp2 - Fatal编程技术网

Google app engine 如何在模板中使用webapp2.uri_?

Google app engine 如何在模板中使用webapp2.uri_?,google-app-engine,django-templates,webapp2,Google App Engine,Django Templates,Webapp2,webapp2说它是一个“可以传递到模板的独立uri_版本”,听起来很完美。当我将其传递给Django模板渲染器时,如下所示: import webapp2 from google.appengine.ext.webapp import template self.response.out.write(template.render(path, { 'webapp2': webapp2 })) 然后把这个放到模板里 Please <a href="{{ webapp2.uri_f

webapp2说它是一个“可以传递到模板的独立uri_版本”,听起来很完美。当我将其传递给Django模板渲染器时,如下所示:

import webapp2
from google.appengine.ext.webapp import template
self.response.out.write(template.render(path,
    { 'webapp2': webapp2 }))
然后把这个放到模板里

Please <a href="{{ webapp2.uri_for('contact') }}">send us 
your feedback</a>.
请。
应用程序引擎1.7.0说

TemplateSyntaxError:无法分析来自“webapp2.uri”for('contact')的余数:“('contact')”

如果我改为

Please <a href="{{ webapp2 }}">send us your feedback</a>.
请。
它表明

模块%20%27webapp2%27%20来自%20%27/usr/local/google\u appengine/lib/webapp2/webapp2.pyc%27%

所以我知道webapp2正在进入模板


如何使这件事正常工作?

google.appengine.ext.webapp.template
是django模板,但您的模板标记示例取自Jinja2

有关webapp2+Jinja2的示例用法,请参见本页:

一旦您成功地呈现了一个简单的模板,请将
'uri_for':webapp2.uri_for
添加到上下文中,或者更好的是,将其添加到jinja2 globals中

因此,对于Django模板,作为一个基本示例,您可以创建一个简单的标记:

register = template.Library()

@register.simple_tag(name='uri_for')
def webapp2_uri_for(route_name):
    return webapp2.uri_for(route_name)
然后在模板中使用它,如下所示:

{% uri_for 'contact' %}
有关详细信息,请参见:

也许可以像jinja2(我知道的方式)那样将其设置为全球?不,那是Django模板。Django和Jinja非常接近,但并不相同。在Django中使用参数进行函数调用时,您不会像在示例
{{{webapp2.uri_for('contact')}}
中那样,因此我假设(您希望使用Jinja2模板)。如果要在Django模板中使用webapp2.uri_,则可能需要创建一个自定义标记,与内置的
url
非常相似: