Djangoの画像保存・表示をやってみる

カテゴリ:Pythonの話

公開日:2020.07.13 最終更新日:2020.07.11
このエントリーをはてなブックマークに追加

inglowのエンジニアです。今回はDjangoでライブラリを使わない画像の保存・表示を行います。

環境

  • Python 3.7.7
  • Django 3.0.7
  • PHPMyAdmin 5.0.2

目次

設定

今回は前提としてTodoアプリの作成にあたり、画像付きで内容を補完できるといいなと思い作成するにいたりました。この記事では出来上がったTodoリストに画像の保存と表示の処理を加えていきます。

Pillowなどのライブラリを活用することもありますが、導入による手間などがあったりするので今回はライブラリを一切活用しない方法です。

まずは設定から、一番下の行に下記を追記します。

/settings.py

/urls.py

あとは、上記のファイルの入ったフォルダと同列のの場所(最上階)に「images」というフォルダを作成します。ここに保存した画像が入ります。

imageフィールドの追加

Taskモデルにフィールドを追加します。下記を追記します。

次にフォームのフィールドにも忘れず追記します。

/forms.py

テンプレートにimageフィールド用に設定していきましょう。formタグに下記を追記します。

templates/task/task_edit.html

あとはviewの保存処理に追記をします。

/views.py

それでは保存をしてみましょう!

保存が確認できます。

画像の表示

それではいよいよ画像の表示をさせてみましょう。

templates/task/task_list.html

これだけで表示ができます!


おわりに

画像の保存処理は、PHP関数のような書き方だとどうしても冗長的になってしまいがちです。Djangoのいいところは比較的短いコードで済ませられるのでおすすめです。

一覧へ戻る