【Django】 render と redirect の違い

こんばんは、客先常駐プログラマンです。

最近、スキル向上のため、Django で ECサイトの開発を行っているのですが、ようやく違いが分かってきたものがあります。

それがrender  redirect の違いです。

以下にそれぞれの特徴をまとめます。

render                                   

→引数として変数を持たせてページ遷移することができる。                  

return render(request, 'sample.html', {'hoge':hoge}) 

みたいに、遷移したいテンプレートに送りたい変数を辞書型にして送ることができます。

また、

params = {
    'hoge1':hoge1,
    'hoge2':hoge2
}

return render(request, 'sample.html', params)

みたいに書くことで、複数の変数を送ることもできます。

redirect

→指定したview へリダイレクトできる。

def hoge1(request):

  ~~code~~
  
  return redirect('app_name:hoge2')

みたいに、urls.py で指定したapp_name を指定すると、そのapp_nameに対応したview へリダイレクトできます。

とりあえずページ遷移させたい場合はrender、他のview の機能を使いたい場合はredirect と覚えておけばいいんじゃないかなと思います。

※ 間違っていたら申し訳ございません...


いいなと思ったら応援しよう!