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.

Reply via email to