This is not possible because the GAE file system is readonly.

If you want to develop on gae, you must use T3. In that case pages are
stores in the DB and not on filesystem.

Massimo

On May 19, 2:46 pm, dlypka <dly...@gmail.com> wrote:
> Does the latest web2py Admin page now run on GAE so that we can
> directly edit the .py files on the GAE file system, thereby doing all
> web2py
> dev "in the cloud"?  Or is it still necessary to do development on a
> private machine and then upload the modified app to GAE each time?
>
> On May 19, 3:35 pm, HansD <hans.don...@pobox.com> wrote:
>
> > I know GAE cannot do direct JOINS.
> > However, a modification in the table layout or a workaround on DAL
> > level should be possible I think (but I haven't had the time yet to
> > figure that one out yet).
>
> > On May 19, 9:10 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > Because the example we provide uses a JOIN and GAE cannot do JOINS.
>
> > > Massimo
>
> > > On May 19, 1:57 pm, Hans Donner <hans.don...@pobox.com> wrote:
>
> > > > Trying to make the web2py examples run out of the box on google apps
> > > > engine (sdk). It now runs almost all examples, only the purchase part
> > > > of the database not yet, anyone a suggestion for this?
>
> > > > The fixing might be a bit quick&dirty, but I was after the results.
>
> > > > Index: applications/examples/controllers/database_examples.py
> > > > ===================================================================
> > > > --- applications/examples/controllers/database_examples.py      
> > > > (revision
> > > > 953)
> > > > +++ applications/examples/controllers/database_examples.py      (working
> > > > copy)
> > > > @@ -100,9 +100,13 @@
>
> > > >      # ## now get a list of all purchases
>
> > > > -    records = db(purchased).select(db.users.name,
> > > > -                                   db.purchases.quantity,
> > > > -                                   db.products.name)
> > > > +    # quick fix to make it runnable on gae
> > > > +    if purchased:
> > > > +        records = db(purchased).select(db.users.name,
> > > > +                                       db.purchases.quantity,
> > > > +                                       db.products.name)
> > > > +    else:
> > > > +        records = db().select(db.users.ALL))
> > > >      return dict(form=form, records=SQLTABLE(records), vars=form.vars,
> > > >                  vars2=request.vars)
>
> > > > Index: applications/examples/models/db.py
> > > > ===================================================================
> > > > --- applications/examples/models/db.py  (revision 953)
> > > > +++ applications/examples/models/db.py  (working copy)
> > > > @@ -33,8 +33,12 @@
> > > >                  SQLField('product_id', db.products), SQLField
> > > > ('quantity'
> > > >                  , 'integer'))
>
> > > > -purchased = (db.users.id == db.purchases.buyer_id) & (db.products.id
> > > > -         == db.purchases.product_id)
> > > > +from gluon.settings import settings
> > > > +if not settings.web2py_runtime_gae:
> > > > +    purchased = (db.users.id == db.purchases.buyer_id) &
> > > > (db.products.id
> > > > +                 == db.purchases.product_id)
> > > > +else:
> > > > +    purchased = None
>
> > > >  db.users.name.requires = IS_NOT_EMPTY()
> > > >  db.users.email.requires = [IS_EMAIL(), IS_NOT_IN_DB(db,
> > > > 'users.email')]
> > > > Index: gluon/cache.py
> > > > ===================================================================
> > > > --- gluon/cache.py      (revision 953)
> > > > +++ gluon/cache.py      (working copy)
> > > > @@ -160,11 +160,21 @@
> > > >  class Cache(object):
>
> > > >      def __init__(self, request):
> > > > -        self.ram = CacheInRam(request)
> > > > -        try:
> > > > -            self.disk = CacheOnDisk(request)
> > > > -        except IOError:
> > > > -            logging.warning('no cache.disk')
> > > > +
> > > > +        from gluon.settings import settings
> > > > +        if settings.web2py_runtime_gae:
> > > > +            from gluon.contrib.gae_memcache import MemcacheClient
> > > > +            self.ram=self.disk=MemcacheClient(request)
> > > > +        else:
> > > > +
> > > > +
> > > > +            self.ram = CacheInRam(request)
> > > > +            try:
> > > > +                self.disk = CacheOnDisk(request)
> > > > +            except IOError:
> > > > +                logging.warning('no cache.disk (IOError)')
> > > > +            except AttributeError:
> > > > +                logging.warning('no cache.disk (AttributeError)')
>
> > > >      def __call__(
> > > >          self,
> > > > Index: gluon/compileapp.py
> > > > ===================================================================
> > > > --- gluon/compileapp.py (revision 953)
> > > > +++ gluon/compileapp.py (working copy)
> > > > @@ -37,7 +37,8 @@
> > > >      logging.warning('unable to import py_compile')
> > > >  from rewrite import error_message_custom
>
> > > > -is_gae = settings.web2py_runtime in
> > > > ['gae:development','gae:production']
> > > > +#is_gae = settings.web2py_runtime in
> > > > ['gae:development','gae:production']
> > > > +is_gae = settings.web2py_runtime_gae
>
> > > >  TEST_CODE = \
> > > >      r"""
> > > > Index: gaehandler.py
> > > > ===================================================================
> > > > --- gaehandler.py       (revision 953)
> > > > +++ gaehandler.py       (working copy)
> > > > @@ -15,10 +15,15 @@
>
> > > >  from gluon.settings import settings
>
> > > > +
> > > > +
> > > > +
> > > >  if os.environ.get('SERVER_SOFTWARE','').startswith('Devel'):
> > > > -    (settings.web2py_runtime, debug) = ('gae:development', True)
> > > > +    (settings.web2py_runtime, settings.web2py_runtime_gae, debug) = \
> > > > +        ('gae:development', True, True)
> > > >  else:
> > > > -    (settings.web2py_runtime, debug) = ('gae:production', False)
> > > > +    (settings.web2py_runtime, settings.web2py_runtime_gae, debug) = \
> > > > +        ('gae:production', True, False)
>
> > > >  import gluon.main- Hide quoted text -
>
> > - Show quoted text -
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to