Thank you. This is helpful. Note, the web2py source *does* come with a GAE app.yaml file -- it's in the root web2py/ folder (along with queue.yaml), as explained in the book: http://web2py.com/book/default/chapter/11#Configuration Actually, in the current development version, app.yaml and queue.yaml have been replaced with app.example.yaml and queue.example.yaml so they don't get overwritten upon web2py upgrade. See this thread: https://groups.google.com/forum/?fromgroups#!searchin/web2py/app.example.yaml/web2py/cd8Smoiv1V0/x-INRnFgJNoJ. The book should be changed to reflect this. Anthony
On Thursday, March 24, 2011 7:06:31 AM UTC-4, Arbie Samong wrote: > I actually tried the tutorial posted here: > > http://blip.tv/file/4912976 > > > and here are some information that wasn't mentioned but might be helpful > for absolute beginners like me: > > - > > You must first register with janrain and take note of the application > name > - > > In models/db_janrain.py, you need to set domain to the application name > you registered with. In the tutorial it is set to web2py. It is > https://blabla.rpxnow.com/, where blabla is the applciation name. > - > > The file janrain_api_key.txt will contain only the secret api key, > which you can see in the janrain dashboard. > - > > The web2py source does not have app.yaml. So you copy the one in > google_appengine/new_project_template over to web2py/. > - > > Edit the file and set the application (first line) to the one you > registered with in app engine. Then set script to gaehandler.py (under > handlers) > - > > When running the local app engine instance for the first time to build > indexes, be sure to change the url in models/db_janrain.py from > localhost:8000 to localhost:8080. If you don't it will redirect to the > web2py instance instead of the app engine instance, and the indexes will > not > be built causing an error when running it in appspot.com > - > > When deploying, appcfg can be found under the google_appengine/ folder, > so just copy the full path. > > > Now, for the question. The friends and search pages do not work when > deploying on GAE, both on localhost:8080 and on the real server. It works > fine when using the web2py server but not on the GAE. My best guess are > database issues, since GAE might not be supporting the db calls used in the > tutorial. The errors are: > > - > > on friends/default/friends/ when viewing the page > > ERROR 2011-03-24 07:34:36,785 restricted.py:55] In FILE: > > /home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/applications/friends/controllers/default.py > > Traceback (most recent call last): > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/restricted.py", > > line 188, in restricted > > exec ccode in environment > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/applications/friends/controllers/default.py:friends", > > line 93, in <module> > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/globals.py", > > line 124, in <lambda> > > self._caller = lambda f: f() > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/tools.py", > > line 2331, in f > > return action(*a, **b) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/applications/friends/controllers/default.py:friends", > > line 68, in friends > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 5009, in select > > return self.db._adapter.select(self.query,fields,attributes) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 2892, in select > > (items, tablename, fields) = > self.select_raw(query,fields,attributes) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 2841, in select_raw > > tablename = self.get_table(query) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 955, in get_table > > raise RuntimeError, "Too many tables selected" > > RuntimeError: Too many tables selected > > - > > on friends/default/search/ when trying to search > > ERROR 2011-03-24 07:35:23,136 restricted.py:55] In FILE: > > /home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/applications/friends/controllers/default.py > > Traceback (most recent call last): > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/restricted.py", > > line 188, in restricted > > exec ccode in environment > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/applications/friends/controllers/default.py:search", > > line 93, in <module> > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/globals.py", > > line 124, in <lambda> > > self._caller = lambda f: f() > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/tools.py", > > line 2331, in f > > return action(*a, **b) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/applications/friends/controllers/default.py:search", > > line 59, in search > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 5009, in select > > return self.db._adapter.select(self.query,fields,attributes) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 2892, in select > > (items, tablename, fields) = > self.select_raw(query,fields,attributes) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 2849, in select_raw > > filters = self.expand(query) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 2734, in expand > > return expression.op(expression.first, expression.second) > > File > > "/home/arbie/Documents/python/workspace/supaprends/google_appengine/web2py/gluon/dal.py", > > line 2595, in OR > > def OR(self,first,second): raise SyntaxError, "Not supported" > > SyntaxError: Not supported > > > It would be great if somebody would post a way to get around these > limitations assuming they are issues on the db layer. I *typed* the code in > the video as verbatim as it could be. >

