I have two questions regarding Bottle:
1) What is the difference between:
redirect('/login') and return template('login')
Wouldn't both make the user go on same the /login page?
2) Can I pass arguments to redirect as I do in case of return?
For e.g.:
Does this work: redirect('/login', userName="foo") as we do in this case:
return template('login', userName="foo")
1) What is the difference between:
redirect('/login')andreturn template('login')
From the bottle documentation for redirect:
To redirect a client to a different URL, you can send a
303 See Otherresponse with theLocationheader set to the new URL. redirect() does that for you
The redirect() method will send a 303 response to the user, who will then send another request to your server for the '/login' page. If you use the template() method, you will be returning the web page directly to the user.
2) Can I pass arguments to
redirectas I do in case ofreturn?
redirect() does not accept query variables, such as those you pass to template(). If you want to use those variables, you will need to set them explicitly on the url. E.g. to use a url '/login' with userName="foo", you need to call redirect('/login?userName="foo")
Edit if you don't want to store all of the variables in the url, you should try to get those values when the page is rendered.
e.g. Call redirect('/login') without the variables and make it the responsibility of the method that renders '/login' to call template() with the correct variables.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With