2010-03-02 7 views
12

Google App Engine (Python)의 템플릿 엔진으로 Jinja2을 사용하기 시작했습니다.Google App Engine의 Jinja2

제 질문은 : 제작시 바이트 코드 캐싱이 작동합니까? 개발 서버에서 잘 작동하지만 바이트 코드 캐싱은 App Engine에서 지원되지 않는 marshal 모듈에 따라 달라집니다. This answer을 다른 질문으로 바꾸려면 marshalpickle 방법으로 변경하여 가능한 해결책을 제시하십시오. 아무도 이것을 시도 했습니까?

일반적으로 App Engine에서 Jinja2를 사용할 때 고려해야 할 사항이 있습니까?

도움이 될 것입니다.

감사합니다.

+0

'pickle'은 코드 객체에 사용할 수 없다는 것이 밝혀졌습니다. 그래서 Jinja2는'marshal '을 사용하여 컴파일 된 템플릿 바이트 코드를 유지합니다. 'marshal '은 지역 개발 환경에서 사용할 수 있지만 배포 된 GAE 환경에서는 비어있는 모듈입니다 (http://code.google.com/appengine/docs/python/runtime.html#Pure_Python 참조). – Cameron

답변

12

Rodrigo Moraes는 GAE에서 Jinja2 용 특수 로더를 만들었습니다 (here 참조). 바이트 코드 캐싱이 아니지만 모든 템플릿을 파이썬으로 사전 컴파일하므로 Jinja2 구문 분석 오버 헤드를 피할 수 있습니다. (this GAE page에서) 것을

참고 :

컴파일 된 응용 프로그램 코드를 웹에 대한 신속한 응답을 를 캐시는 Jinja2 지금 GAE에 포함되어

+0

지금은 캐시되지 않은 템플릿을 사용하려고합니다. 코드를 탐구 할 시간이 많으면 자세히 살펴볼 것입니다. 답장을 보내 주셔서 감사합니다! – Cameron

1

What's New in Python 2.7 docs에 따르면

애플리케이션 제목에서

libraries: 
- name: jinja2 
    version: "2.6" 

여기이 정보의 원천 추가합니다.

.pyc 파일은 업로드 할 수 있지만 .py 파일은 업로드 할 수 없습니다. 그러나 .py 또는 .pyc 파일 (또는 그 조합)이 포함 된 .zip 파일을 업로드 할 수 있습니다.