Thanks for the solution Quint, I think I've got it:
_db.py - model
if not request.env.web2py_runtime_gae:
## if NOT running on Google App Engine use SQLite or other DB
db = DAL('sqlite://storage.sqlite', pool_size=1, migrate=True)
#,check_reserved=['all']
else:
## connect to Google BigTable (optional 'google:datastore://namespace')
db = DAL('google:datastore')
## store sessions and tickets there
#session.connect(request, response, db=db)
## or store session in Memcache, Redis, etc.
from gluon.contrib.memdb import MEMDB
from google.appengine.api.memcache import Client
session.connect(request, response, db = MEMDB(Client()))
from gluon.contrib.gae_memcache import MemcacheClient
#session.connect(request, response, db = MEMDB(Client()))
cache.memcache = MemcacheClient(request)
cache.ram = cache.disk = cache.memcache
default.py - controller
@cache(request.env.path_info, time_expire=1200, cache_model=cache.memcache)
def index():
index = db(db.page.sequence==0).select(db.page.ALL).first().as_dict()
return dict(index=index)
Turn the Select result directly into a dict it is now caching in GAE.
index.html - view
{{extend 'layout.html'}}
<div id="content_main">
<div class='content_text'>
{{=XML(index['body'], sanitize=False)}}
</div>
{{block right_sidebar}}
<div id="content_main">
{{=XML(index['side'], sanitize=False)}}
</div>
{{end}}
</div>
Don't forget to change the view output objects to dicts.
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.