django中render()和redirect()的区别是什么?

tsm1rwdh  于 2022-12-24  发布在  Go
关注(0)|答案(1)|浏览(162)

在django中render()和redirect()的区别是什么?我知道redirect会发送另一个请求到URL,而render会根据给定的上下文渲染模板。但是有些东西还是让我不完全理解。也许任何人都能解释清楚,可以帮助我很多。在使用redirect函数之前,我必须先渲染模板吗?例如:我有两个模板home.htmlsignin.html

def home(request):
   return render(request, 'home.html')

def logout(request):
   return redirect('signin')


如果不写def home,我是否可以重定向到home.html,如下所示

def logout(request):
   return redirect('signin')
ljsrvy3e

ljsrvy3e1#

在django render()中,用于使用HTTP请求服务HTML页面的方法也使用上下文字典呈现支持数据

前-

def home(request):
   contex = {}
   return render(request, 'home.html',context)

这里home()函数returnrender()方法意味着它是surve home.html页面。你可以传递数据字典作为一个上下文,它从home()函数中监视动态数据
redirect()方法用于在完成请求后重新定向到redirect()方法中传递的特定url。
不能在redirect()方法中传递上下文。

前-

def logout(request):
   return redirect('signin')

成功注销signin url上的重定向后,signin url调用signin()函数,该函数呈现signin.html页面

相关问题