yes

2010/7/30 rochacbruno <[email protected]>

> I have a lot of code wrote in this sintax, But, ig its wrong, no problem to
> replace.
>
> Will this still works?
>
> _href=URL(request.application,'plugin_wiki','page',args=[row,])
>
> Sent from my iPhone
>
> On 30/07/2010, at 04:05, mdipierro <[email protected]> wrote:
>
> You are right but it only breaks backward compatibility in a case
> where things would be misleading. Here are some example:
>
> # old syntax that still works
> URL('a','c','f')
> URL(a='a',c='c',f='f')
> URL(f='f',r=request)
>
> #new syntax that resulted in an error before
> URL('f')
> URL('c','f')
> URL(f='f')
> URL(c='c',f='f')
>
> ## changed of behaviour
> URL('a',r=request)
> was /a/current_controller/current_function
> now
> was /current_app/current_controller/a
>
> I.e. the change of behavior only occurs if the user explicitly
> specifies r and a (without naming a)  but not f. I.e. if the user is
> specifying redundant information that may be conflicting (because a
> may differ from r.application). Users should not be doing this anyway.
> I have never seen anybody doing this.
>
> Did I miss something? can you see any other case when the behavior
> would change?
>
> What do other people think?
>
> Massimo
>
>
>
>
>
>
>
>
>
>
>
>
> On Jul 29, 8:27 pm, Thadeus Burgess <[email protected]> wrote:
>
> Massimo, you cannot
>
>
> I am sorry but that would break backwards compatibility.
>
>
> Say if in certain apps you have this (in alot of the earlier apps on
>
> web2py.com do this too)
>
>
> URL(request.application, 'static', 'logo.png')
>
>
> Or
>
>
> URL(request.application, 'default', 'index')
>
>
> Unfortunately, we cannot re-arrange the variables defined in URL from this
> order
>
>
> def URL(
>
>     a=None,
>
>     c=None,
>
>     f=None,
>
>     r=None,
>
>     args=[],
>
>     vars={},
>
>     anchor='',
>
>     extension=None,
>
>     env=None
>
>     ):
>
>
> --
>
> Thadeus
>
>
> On Thu, Jul 29, 2010 at 8:23 PM, Michele Comitini
>
>
> <[email protected]> wrote:
>
> thumbs up!
>
>
> 2010/7/30 mdipierro <[email protected]>
>
>
> I took it one step further...
>
>
> URL()
>
> /app/default/index
>
> URL('test')
>
> /app/default/test
>
> def test(): return 'test'
>
> URL(test)
>
> /app/default/test
>
> URL('static','filename')
>
> /app/static/filename
>
> URL('other','static','filename')
>
> /other/static/filename
>
>
> No more r=, c=, f= needed but all optional.
>
>
> On Jul 28, 6:28 pm, Thadeus Burgess <[email protected]> wrote:
>
> SORRY! =D
>
>
> --
>
> Thadeus
>
>
> On Wed, Jul 28, 2010 at 6:22 PM, mdipierro <[email protected]>
>
> wrote:
>
> WOW. Uploading to trunk. Now I need to revise the book again. :-(
>
>
> On Jul 28, 5:51 pm, Thadeus Burgess <[email protected]> wrote:
>
> URL(r=request, c='hello', f='world', args=['hi'],
>
> vars={'q':'greetings'}, anchor='the_world')
>
>
> '/welcome/hello/world/hi#the_world?q=greetings'>>> URL(c='hello',
>
> f='world', args=['hi'], vars={'q':'greetings'}, anchor='the_world')
>
>
> '/welcome/hello/world/hi#the_world?q=greetings'
>
>
> Attached is the diff
>
>
> This should not effect any current usages of URL, but from this point
>
> forward we shouldn't have to specify r=request!
>
>
> --
>
> Thadeus
>
>
> On Wed, Jul 28, 2010 at 5:21 PM, mdipierro <[email protected]>
>
> wrote:
>
> ok
>
>
> On Jul 28, 4:52 pm, Thadeus Burgess <[email protected]> wrote:
>
> For a little more advanced version of what Massimo just posted:
>
>
> This allows you to use both.
>
>
> URL(r=request, c=<controller>, f=.....)
>
> and
>
> URL(c=<controller>, f=<function>.....)
>
>
> http://packages.python.org/web2py_utils/init.html#gurlhttp://hg.thade
> ......
>
>
> The reason we have to pass the request to URL each time is because
>
> it
>
> is just imported into the context. Since it is just a python
>
> function,
>
> it has no knowledge of request.
>
>
> Why can't we do something like gURL from within web2py? When
>
> building
>
> the context, why can't we make URL a loaded function that will get
>
> request passed to it, exactly how gURL works.
>
>
> Effectively, we won't have to pass request into URL function
>
> anymore... ever.
>
>
> If your interested, I can work on the patch.
>
>
> --
>
> Thadeus
>
>
> On Wed, Jul 28, 2010 at 3:56 PM, mdipierro
>
> <[email protected]> wrote:
>
> 1) It is a bit more complex because of static, appadmin, and
>
> admin.
>
> You can map
>
>
> /function/var1/var2
>
>
> into
>
>
> /app/controller/function/var1/var2
>
>
> using a file routes.py
>
>  ------- begin file
>
> routes_in=[
>
>  ('/admin/$anything','/admin/$anything'),
>
>  ('/static/$anything','/app/static/$anything'),
>
>  ('/appadmin/$anything','/app/appadmin/$anything'),
>
>  ('/$anything','/app/default/$anything'),
>
> ]
>
> routes_out=[(y,x) for (x,y) in routes_in]
>
> ----- end file
>
>
> 2) in db.py define
>
>
> def url(f,args={},vars={}):
>
>      return URL(r=request,f=f,args=args,vars=vars)
>
> def go(f,args={},vars={},flash=''):
>
>      session.flash=flash
>
>      return go(url(f=f,args=args,vars=vars))
>
>
> and use
>
>
>    url('index')
>
>
> or
>
>
>   go('index',flash='you are being redirected')
>
>
> I do it all the time
>
>
> On Jul 28, 3:29 pm, VP <[email protected]> wrote:
>
> I'm a newbie, so my questions probably have easy answers, but
>
> anyway.
>
> Among a few things, there are two I don't understand and think
>
> can be
>
> simplified.
>
>
> 1. this url:   app/controller/function/var1/var2
>
>
> For me at least, most of the time I probably have only one
>
> controller.   If there is one controller, may be we should get
>
> rid of
>
> "controller" in the url?    This will be sufficient:
>
> app/f/a/b/c
>
>
> 2.  Similarly, most of the time I have only one app (current
>
> app).
>
> But I use URL() a lot and every time I have to pass in request
>
> like
>
> this URL(r=request, f='foo').
>
>
> Why do I have to pass in request if I have only one app, one
>
> controller?
>
>
> Furthermore, isn't request supposed to be global?  If so, do we
>
> have
>
> to pass it in?
>
>
>  url_proxy.diff
>
> 1KViewDownload
>
>

Reply via email to