return redirect(url_for('index', var=var))
return render_template('index.html', var=var)
这两行基本上是一回事吗?
这两个功能有什么区别?
答案 0 :(得分:25)
redirect
向浏览器返回302标头,其Location
标头作为index
功能的网址。 render_template
返回200,其中index.html模板作为该网址的内容返回。
答案 1 :(得分:9)
更简单的说明,请考虑一下 - 如果您的端点都没有呈现模板,并且您的所有重定向都是应用程序中的端点网址,则无需呈现任何内容!
这就像是指向一个不会展示自己的地方。
答案 2 :(得分:2)
一个URL端点可以具有许多不同的render_template语句,因此可以从模板文件夹中呈现不同的页面模板。另一方面,使用重定向会更改URL本身,从而调用与该路由关联的方法。
答案 3 :(得分:0)
redirect
默认发送GET
请求,而render_template
发送POST
请求。
通常与url_for
一起使用的重定向更加灵活。以来
redirect(url_for('functionName')[,var=value])
以函数名称作为参数
render_template('mypage.html'[,var=value])
以静态页面名称作为参数。
答案 4 :(得分:0)
使用return(list(a = a, b = b, c = c, d = d))
重定向到传递的URL等效于从客户端(浏览器)传递return(b)
对通过redirect()
方法传递的URL的请求。它导致传递的URL的“视图”功能的执行,通常,最后,我们有一个“返回语句”,通过GET
返回Html页面(模板),最终传递了Html页面到客户端浏览器。
redirect()
仅将Html页及其所有其他参数传递给客户端浏览器,此后将不执行“ view”功能。