0

webapp2 は、 webapp2.uri_forは「テンプレートに渡すことができるスタンドアロンの 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: 残りを解析できませんでした: '('contact')' from '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 がテンプレートに入っていることを知っています。

これを機能させるにはどうすればよいですか?

4

1 に答える 1

-1

google.appengine.ext.webapp.templateはdjangoテンプレートですが、テンプレートのマークアップの例はJinja2から取得されています。

webapp2 + Jinja2の使用例については、次のページを参照してください: http ://webapp-improved.appspot.com/api/webapp2_extras/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/を参照してください。

于 2012-09-15T21:28:58.430 に答える