0
1

DjangoのHTMLファイルで動画ファイルを識別して表示させるには

Posted at
HTMLでの動画ファイルを識別するために私が使ったものを紹介します
技術検証中にまとめたため、コメントアウトは気にしないでください

カスタムフィルター

カスタムフィルターとはテンプレート内でDBから受け取ったデータを変換・整形するための仕組みです。今回はmp4ファイルとmovファイルを識別するために使用しました。

カスタムフィルターの導入方法

カスタムフィルターを導入するためにはまず下の図のようにアプリケーションファイル内に[templatetags]フォルダーを作成し、その中に__init__.pyとcustom_filters.pyという2つのPythonファイルを作成します。
ここでの__init__.pyはフォルダー内のPythonファイルを認識させるためのものです。

スクリーンショット 2024-06-03 145344.png

カスタムフィルターの設定

custom_filters.pyの中身を書いていきます。まずdjangoモジュールからtemplateをインポートします。templateの中にあるLibraryにはDjangoのテンプレートシステムで使用されるカスタムテンプレートタグやフィルタを作成するためのクラスがあります。
ここから関数を書いていきます。まず @register.filter でライブラリからフィルターを取り出します。そして関数を定義し、返り値は今回だとmp4ファイルかどうかを識別したいので、id.lower().endswitch('.mp4')とします。ここではlower()により文字列を小文字にして処理しやすくし、endswitch()で条件に当てはまるかどうかを判別しています。

スクリーンショット 2024-06-03 153245.png

HTMLファイルに適用させる

htmlファイルに適用していきます。定義した関数を使用するには、Djangoですと
{% code %} (ここではcodeにif文を追加する)とする必要があり、
{% if|is_mp4 %} と書きます。下の図はファイル識別のコードです。

スクリーンショット 2024-06-03 153614.png

感想

カスタムフィルターを使用することで、簡単にファイル識別を実装することができました。初めての投稿でしたが、ここまで読んでいただきありがとうございます!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1