【django】テンプレートとは

 

この記事では、Webアプリケーションフレームワーク、Django(ジャンゴ)について解説します。

 

 

Djangoって何?

 

Djangoはwebアプリケーションフレームワークです。webアプリケーションフレームワークというと難しいですが、要はwebアプリを作るときに必要な機能をまとめたものです。

 

django以外にも、Ruby on Rails や Node.js もwebアプリのフレームワークです。

 

情報を表示するだけのサイトであれば、webアプリは必要ありません。

 

ユーザの動作によって、サイトの表示を変えたり、データをサーバに送るなどの動的な機能が欲しい場合にはwebアプリを作成する必要があります。

 

webアプリの機能の例

・アカウント作成機能
・ログイン・ログアウト機能
・掲示板のメッセージ投稿機能
・ドロップダウンメニューの表示

 

他にも色々ありますが、全てのサイトでこういった機能はありますよね。

 

ほとんどのページはwebアプリで出来ていると考えて良いと思います。

 

templateって何?

 

templateはdjangoの1つの機能です。テンプレートを使うことで動的にHTMLを生成できます。

 

templateの基本機能

・変数
・フィルタ
・タグ
・コメント
・テンプレートの継承

変数(variable)

 

変数を表示したいときに使います。

 

 

変数の属性値にアクセスする時はドットを使います。

 

 

sectionオブジェクトのtitle属性が表示されます。

 

フィルタ

 

変数を加工したい場合はフィルタを使います。例えば、文字列を小文字に変えたい場合は

 

 

と書きます。

リストの長さを表示したい場合は以下のように書きます。

 

 

valueが[a,b,c,d]のリストだったら、4を出力します。

 

タグ(tag)

 

タグを使うと、HTMLの中にPythonのfor文やif文が書けるようになります。

 

for文

 

 

アスリートの名前を羅列するプログラムです。

 

if文

 

athlete_listが空でなければアスリートの数を表示するプログラムです。

 

コメント

 

1行のコメントする時に使います。{# #}の中に入れる文字列は何でも良いです。

 

 

テンプレートの継承

 

テンプレートの継承は少し難しいです。しかし、ほとんどのwebアプリで使われているのでここを理解しておくと後々有利ですよ。

 

親テンプレートでサイトの骨組みを作っておいて小テンプレートでその中身を埋めるのがテンプレートの継承です。

 

親テンプレート

 

 

{% block %}を使って以下の3つのブロックを定義しています。ここの箇所を子テンプレートを使って上書きしてくださいねという意味です。

 

子テンプレート

 

 

{% extends %}タグで継承していることを教えます。親のテンプレートにタグの中身を代入するためのコードです。

 

HTML出力結果

 

 

ブログ名がMy amazing blogになっていますね。これは子テンプレートで定義した値です。

 

blog_entriesの中身が出力されています。継承された値が出力されていることが分かります。

 

まとめ

 

・djangoはwebアプリを作るための機能を一式提供してくれるパッケージ
・テンプレートはHTMLを生成するための機能
・テンプレートの基本は変数とタグ

 

以上です。お疲れ様でした。

ABOUTこの記事をかいた人

のっくん

理系院卒で大企業の研究所に就職。 趣味はプログラミング、レアジョブ英会話、筋トレ、旅行。 Twitter:@yamagablog