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.
>

Reply via email to