render_template和redirect之间的区别?

时间:2014-02-10 03:11:16

标签: python flask

return redirect(url_for('index', var=var))
return render_template('index.html', var=var)

这两行基本上是一回事吗?

这两个功能有什么区别?

5 个答案:

答案 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”功能。