Python 瓶子 - "redirect" 和 "return template" 之间的区别
Python Bottle - Difference between "redirect" and "return template"
我有两个关于 Bottle 的问题:
1)有什么区别:
redirect('/login')
和 return template('login')
两者不会让用户继续访问同一个 /login
页面吗?
2) 我可以像 return
那样将参数传递给 redirect
吗?
例如:
这项工作是否有效:redirect('/login', userName="foo")
就像我们在这种情况下所做的那样:
return template('login', userName="foo")
1) What is the difference between:
redirect('/login')
and return template('login')
来自bottle documentation for redirect:
To redirect a client to a different URL, you can send a 303 See Other
response with the Location
header set to the new URL. redirect() does
that for you
redirect()
方法将向用户发送 303 响应,然后用户将向您的服务器发送另一个请求“/登录”页面。如果您使用 template()
方法,您将把网页直接返回给用户。
2) Can I pass arguments to redirect
as I do in case of return
?
redirect()
不接受查询变量,例如您传递给 template()
的变量。如果要使用这些变量,则需要在 url 上明确设置它们。例如。要将 url '/login'
与 userName="foo"
一起使用,您需要调用 redirect('/login?userName="foo")
Edit 如果您不想在 url 中存储所有变量,您应该尝试在呈现页面时获取这些值。
例如在没有变量的情况下调用 redirect('/login')
,并使呈现“/login”的方法负责使用正确的变量调用 template()
。
我有两个关于 Bottle 的问题:
1)有什么区别:
redirect('/login')
和 return template('login')
两者不会让用户继续访问同一个 /login
页面吗?
2) 我可以像 return
那样将参数传递给 redirect
吗?
例如:
这项工作是否有效:redirect('/login', userName="foo")
就像我们在这种情况下所做的那样:
return template('login', userName="foo")
1) What is the difference between:
redirect('/login')
andreturn template('login')
来自bottle documentation for redirect:
To redirect a client to a different URL, you can send a
303 See Other
response with theLocation
header set to the new URL. redirect() does that for you
redirect()
方法将向用户发送 303 响应,然后用户将向您的服务器发送另一个请求“/登录”页面。如果您使用 template()
方法,您将把网页直接返回给用户。
2) Can I pass arguments to
redirect
as I do in case ofreturn
?
redirect()
不接受查询变量,例如您传递给 template()
的变量。如果要使用这些变量,则需要在 url 上明确设置它们。例如。要将 url '/login'
与 userName="foo"
一起使用,您需要调用 redirect('/login?userName="foo")
Edit 如果您不想在 url 中存储所有变量,您应该尝试在呈现页面时获取这些值。
例如在没有变量的情况下调用 redirect('/login')
,并使呈现“/login”的方法负责使用正确的变量调用 template()
。