djangoのコードを書いていると、renderというメソッドを見ることがありますよね。
何となく使っているけど、そもそもrenderって何か?と疑問を持つ方向けに、renderingの意味を分かりやすく解説していきます。
レンダリングは、ある情報を形を変えて表現すること
一言で伝えるとするならば、レンダリングとは「ある情報を形を変えて表現すること」です。
ここでイメージがわきづらいのが、「形を変えて」という部分ではないかと思います。この点について、具体的な例で理解を深めていきましょう。
ウェブブラウザのレンダリング
イメージしやすい例として、ブラウザによるレンダリングを考えてみましょう。
例えば、djangoの公式サイトのトップページはこのような表示になっています。
文字の大きさが違ったり、上部が緑色の帯になっていたり、きれいな見た目になっていますよね。
このトップページはhtmlファイルなのですが、そのファイルの中身をみていきましょう。
このように、文字情報が並んでいるだけです。
では、なぜブラウザ上では文字情報がカラフルになっているのでしょうか?
その答えは、ブラウザが「ファイルの情報をレンダリングしている(見た目を変えている)」からです。
さきほど、レンダリングとは形を変えて表現すること、とお伝えしました。
つまり、htmlファイルの場合、ブラウザが単なる文字情報を、色や大きさにおいて「形を変えて表現」しているのです。
djangoにおけるレンダリング
レンダリングの一般的なイメージをおさえた上で、djangoにおけるレンダリングのイメージをかためていきましょう。
djangoにおけるレンダリングは色々な種類があるのですが、一番イメージがわきやすいrenderメソッドをみていこうと思います。
renderメソッドは、request、template_name、contextという3つの引数を取ります。(実際にはもっと沢山の引数を取ります。)
そして、requestの中には、セッションの情報や、requestの種類(getかpost)の情報が入っています。
template_nameには、表示するhtmlファイルの情報が入っています。
contextには、データベースに入っているデータの情報が入っています。
renderメソッドは、これらの情報をうまく組み合わせて、ごちゃごちゃになっている情報を、ブラウザに表示しやすい形に変えてくれているのです。
ウェブブラウザの場合は、見た目を変えていましたが、djangoの場合は、複数の情報を編集しています。
つまり、レンダリングというのは、htmlの場合やdjangoの場合など、それぞれの場合において異なる方法で行われるのです。
renderingのまとめ
(1) renderingとは、ある情報を形を変えて表現すること。
(2) Djangoでは、多くの情報を整理してhtmlファイルに上手に表現する仕組みが備わっている。