Jinja2 в Google App Engine
Я начал использовать Jinja2 в качестве моего механизма шаблонов в Google App Engine (на Python).
Мой вопрос заключается в следующем: Будет ли кэширование bytecode работать на производстве? Он отлично работает на сервере разработки, но я где-то читал, что кэширование байтового кода зависит от модуля marshal
, который не поддерживается в App Engine. Этот ответ на другой вопрос предоставляет возможное решение, изменяя marshal
на использование методов pickle
. Кто-нибудь пробовал это?
В общем, есть ли что-нибудь еще, что я должен учитывать при использовании Jinja2 с App Engine?
Любая помощь будет принята с благодарностью!
Спасибо.
Ответы
Ответ 1
Родриго Мораес создал некоторые специальные погрузчики для Jinja2 под GAE, см. здесь. Это не кэширование байт-кода, но он прекомпиляции всех шаблонов на Python, поэтому вы избегаете служебных расходов Jinja2.
Обратите внимание, что (из эта страница GAE):
скомпилированный код приложения кэшируется для быстрого ответа на веб-запросы
Ответ 2
Jinja2 теперь включен в GAE. Очевидно, вам нужно перенести приложение в Python 2.7.
В app.yaml add
libraries:
- name: jinja2
version: "2.6"
Вот источник этой информации: http://blog.notdot.net/2011/11/Migrating-to-Python-2-7-part-2-Webapp-and-templates
Ответ 3
В соответствии с What New в документах Python 2.7, с Python 2.7 вы также можете загружать файлы .pyc.
Может загружать файлы .pyc, но не в комбинации с .py файлами. Однако вы можете загружать файлы .zip, содержащие файлы .py или .pyc(или комбинацию).