Python Bottle - "重定向"和"返回模板"之间的区别

ss2*_*025 3 python redirect bottle

我有两个关于瓶子的问题:

1)有什么区别:

redirect('/login')return template('login')

是不是都会让用户同一/login页面?

2)我可以redirect像我一样传递参数return吗?

例如:

这是否有效:redirect('/login', userName="foo")正如我们在这种情况下所做的那样:

return template('login', userName="foo")

Fer*_*oto 7

1)有什么区别:

redirect('/login')return template('login')

用于重定向瓶子文档:

要将客户端重定向到其他URL,您可以将303 See Other 带有Location标头集的响应发送到新URL.redirect()为你做到了

redirect()方法将向用户发送303响应,然后用户将向您的服务器发送另一个请求以获取"/ login"页面.如果您使用该template()方法,您将直接将网页返回给用户.

2)我可以redirect像我一样传递参数return吗?

redirect()不接受查询变量,例如您传递给的变量template().如果要使用这些变量,则需要在URL上显式设置它们.例如,使用URL '/login'userName="foo",你需要调用redirect('/login?userName="foo")

编辑如果您不想将所有变量存储在URL中,则应该在呈现页面时尝试获取这些值.例如,在redirect('/login')没有变量的情况下调用,并使得template()使用正确的变量呈现'/ login'的方法负责.