Django

Djangoの組み込み日付(date),時間(time),現在時刻(now)を使って時刻表示する

組み込みタグとは、Djangoのテンプレートを利用する際に値を変換する便利な機能です。こちらの記事では、タグを作成する方法について記載しましたが、

今回の記事では、時刻を表示する組み込みタグのdate, time, nowについて詳細に記載していきたいと思います。

組み込みタグdateの使い方

dateは、dateフォーマットの変数をテンプレート上で指定した形式に変換して表示するためのタグです。以下のような書き方をします。

{{ value|date:”D d M Y” }}

ここで言うdateフォーマットとは、以下のようなクラスの変数を含みます。

  • django.db.models.DateTimeField
  • datetime.datetime(pythonの標準ライブラリ)
  • datetime.date(pythonの標準ライブラリ)

実際に実装してみましょう。

この場合、Postモデルのcreated_date、published_dateはmodels.DateTimeFieldとして設定しています。
views.pyはListViewを使ってモデルから値を取得します。

次にtemplateの定義は以下のようにします。

このように設定すると画面では、下のように表示されます。

ちなみに、|dateの横の”Y m d”は他にも定義の方法があります。

詳細は、こちらの公式サイトをご参照下さい

他にも、以下のようにpythonの標準ライブラリのdatetime.dateを使うこともできます。

テンプレートは、以下のように定義します。

画面上は、以下のように表示されます。

組み込みタグ(time)の使い方

timeの場合は、以下のようなクラスの変数を利用できます。

  • django.db.models.DateTimeField
  • datetime.datetime(pythonの標準ライブラリ)

views.pyは下のように定義します。

テンプレートは以下のように定義します。

実行すると、以下のように表示されます。

組み込みタグ(now)の使い方

nowを利用すると、テンプレート上に現在時刻を表示できるようになります。

以下のように記載します。

{% now “Y/m/d H:i:s” %}

例えば、テンプレートを以下のように実装します。

立ち上げると、画面上で以下のように表示されます。

以上で、テンプレートの組み込みタグ、date, time, nowの利用方法について記載しました。
テンプレート上で、dateのフォーマットを変えたい場合は是非、ご活用下さい

↓↓Pythonについてもっと知りたい!というかたはこちら、Pythonの基本文法から標準ライブラリ、応用ライブラリまで収録!!

【2020年版】: Python 3.8 データ構造、文法、アルゴリズム、オブジェクト指向、ライブラリ、完全マスター講座