Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jinja2 in Google App Engine

I have started using Jinja2 as my templating engine on Google App Engine (in Python).

My question is this: Will bytecode caching work in production? It is working very well on the development server, but I read somewhere that bytecode caching depends on the marshal module, which is not supported in App Engine. This answer to a different question provides a possible solution by changing marshal to use pickle methods. Has anyone tried this?

In general, is there anything else that I should take into consideration when using Jinja2 with App Engine?

Any help would be greatly appreciated!

Thanks.

like image 979
Cameron Avatar asked Mar 02 '10 18:03

Cameron


Video Answer


2 Answers

Rodrigo Moraes created some special loaders for Jinja2 under GAE, see here. It's not bytecode caching but it precompiles all templates to Python so you avoid the Jinja2 parsing overhead.

Note that (from this GAE page):

compiled application code is cached for rapid responses to web requests

like image 195
Vinay Sajip Avatar answered Sep 19 '22 17:09

Vinay Sajip


Jinja2 is now included in GAE. Apparently you need to migrate your app to Python 2.7.

In app.yaml add

libraries:
- name: jinja2
  version: "2.6"

Here is the source of this information: http://blog.notdot.net/2011/11/Migrating-to-Python-2-7-part-2-Webapp-and-templates

like image 29
Daniel F Avatar answered Sep 20 '22 17:09

Daniel F