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