2012-09-15 2 views
0

webapp2는 webapp2.uri_for이 "템플릿에 전달할 수있는 독립 실행 형 uri_for 버전"이라고 말합니다. 완벽 해. 내가 장고 템플릿 렌더러에 전달하는 경우 다음과 같이 내가 대신템플릿에서 webapp2.uri_for를 사용하는 방법?

넣으면

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: Could not parse the remainder: '('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가 템플릿에 들어 있다는 것을 알고 있습니다.

어떻게 작동합니까?

+0

아마도 내가 알고있는 것처럼 jinja2처럼 글로벌로 설정할 수 있습니까? http://stackoverflow.com/questions/7081250/webapp2-jinja2-how-can-i-get-uri-for-working-in-jinja2-views –

답변

-1

google.appengine.ext.webapp.template은 장고 템플릿이지만 템플릿 마크 업 예제는 Jinja2에서 가져 왔습니다.

는 webapp2 + Jinja2의 예 사용이 페이지를 참조하십시오 간단한 템플릿을 렌더링 관리되는 일단 http://webapp-improved.appspot.com/api/webapp2_extras/jinja2.html

, 전역을 jinja2에 추가, 더 나은 아직, 문맥에 'uri_for': webapp2.uri_for을 추가하거나.

그래서, 장고 템플릿, 원시적 예를 들어, 당신은 간단한 태그를 만들 수 있습니다

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/

+0

아니요, 장고 템플릿입니다. Django와 Jinja는 거의 비슷하지만 동일하지 않습니다. – dfrankow

+0

예를 들어 장고에서''{{webapp2.uri_for ('contact')}}'처럼 매개 변수를 사용하여 함수 호출을 수행하지 않으므로 대신 Jinja2 템플릿을 사용하려고합니다. – alex

+0

Django 템플릿에서 webapp2.uri_for를 사용하려면 내장 된'url'과 매우 유사한 사용자 정의 태그를 만드는 것이 좋습니다. https://docs.djangoproject.com/en/dev/ref/templates/builtins/# url – alex