I should clarify my answer. While I am not sure if raw_args is working as 
intended or not, and I am looking into this, web2py does not limit your 
ability to use unicode in URLs. It just asks you to do in a way that is 
safe.

For example, imagine you want an url like this:

http://hostname/wiki/ɸ

and your app is called "myapp". What web2py does not like is that you map ɸ 
as an arg. It is ok to map ɸ as a var. So you can have a rule like:

routes_in = [('/wiki/$anything', '/myapp/default/wiki?key=$anything')]

and in myapp/controllers/default.py

def wiki():
     key = request.vars.key # contains "ɸ"
     ....

The rule is that args are automatically validated, vars are not and you 
must validate them yourself.
The purpose of raw_args is not to allow you use unicode in the URL (which 
can do with the method before) but to loosen up the autovalidation of args 
and I am not sure it is a good idea. If you use routes, args are defined 
after routing.

Massimo




On Saturday, 20 October 2012 05:40:22 UTC-5, Vasile Ermicioi wrote:
>
> I need unicode urls, so I enabled routes_apps_raw for my app,
> and in models I have a  file 0.py where I have this code
>
> if not request.args:
>     request.args = List(request.raw_args.split('/')) if request.raw_args 
> else []
> if not request.args:
>     request.args = List()
>
> and when going to /app/default/user/login 
>
> I got an error 404
>
> it works fine for 1.99.4 but doesn't work with trunk
>
> if I disable routes_app_raw then it works
>
> so I propose to enable unicode urls by default,
> flask routing supports unicode args and vars
>

-- 



Reply via email to