【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 と覚えておけばいいんじゃないかなと思います。
※ 間違っていたら申し訳ございません...