Let's hear some pros/cons from other users.

On Jan 21, 8:36 am, billf <[email protected]> wrote:
> I'm interested in different forms of url's and had a read about
> routes.py.  But the manual tells me my app shouldn't rely on routes.py
> being present.  So I thought of the following approach  (it's the
> result of all of 15 minutes thinking/code/test so don't expect too
> much).
>
> * I want to be able to recognisehttp://myserver/myapp/anytable/an_optional_id
>
> * let's assume I have a table 'user' and a controller 'default.py'
> that contains a function 'default()'
>
> * in compileapp.py the code identifies (or not) the controller and
> function and outputs 'invalid controller' or 'invalid function' as
> appropriate
>
> * my change  basically says: if you don't find the controller try
> again with a default value 'default' before failing and if you don't
> find the function try again with the value 'default' before failing
>
> * in addition, each time it defaults it pushes the lower element to
> args[]
>
> * so when I enterhttp://myserver/myapp/user/1control is passed to
> the default() function of the default.py controller and the two args
> are 'user' and '1'
>
> The code changes in compileapp.py start at line 190 and are marked
> below (new stuff):
>
>     else:
>         filename=os.path.join(folder,'controllers/%s.py' % controller)
>         if not os.path.exists(filename):
>             # new stuff
>             default_controller='default'
>             filename = os.path.join(folder,'controllers/%s.py' %
> default_controller)
>             if os.path.exists(filename):
>                 request=environment['request']
>                 request.args.insert(0,function)
>                 request.function=request.controller
>                 request.controller=default_controller
>             else:
>             # end of new stuff
>                 raise HTTP(400,error_message_custom % 'invalid
> controller',
>                            web2py_error='invalid controller')
>         code=open(filename,'r').read()
>         exposed=regex_expose.findall(code)
>         if not function in exposed:
>             # new stuff
>             default_function='default'
>             function=default_function
>             if function in exposed:
>                 request=environment['request']
>                 request.args.insert(0,request.function)
>                 request.function=default_function
>             else:
>             # end of new stuff
>                 raise HTTP(400,error_message_custom % 'invalid
> function',
>                            web2py_error='invalid function')
>
> Enjoy!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to