webapp2说为是一个“独立的uri_for版本,可以传递给模板。”听起来很完美。当我将它传递给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“)中的”(“联系人”)“
如果我把
Please <a href="{{ webapp2 }}">send us your feedback</a>.
它显示了
module%20%27webapp2%27%20from%20%27/usr/local/google_appengine/lib/webapp2/webapp2.pyc%27%
所以我知道webapp2正在进入模板。
我怎么才能让这东西起作用?
发布于 2012-09-15 13:28:58
google.appengine.ext.webapp.template
是一个django模板,但是您的模板标记示例来自于Jinja2。
有关webapp2 + Jinja2:附加文件/jinja2.html的示例用法,请参阅此页面
一旦您成功地呈现了一个简单的模板,将'uri_for': webapp2.uri_for
添加到上下文中,或者更好地将它添加到jinja2全局。
因此,对于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' %}
有关详细信息,请参见此:https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
https://stackoverflow.com/questions/12439937
复制