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.

Reply via email to