見出し画像

Django4の説明7:DBのテーブルの追加など


0.今回の目標

投稿する前に、
・画像のアップロード先
・保存したファイルの場所を設定するモデルの作成、
・データベースにテーブルなどの作成する作業
を行います。
データベースのテーブル項目の追加などはよくありますので手順などを学びましょう。
また必要とするライブラリのインストールします。

1.Pillowをインストールする

プロジェクト配下でインストールする

1.1.Pillowとは

Pillowは、Python上で画像処理を行うためのライブラリです。
Pillowを使用することで、Pythonで読み込んだ画像を簡単に加工できます。

1.2.PillowとOpenCVとの違い

Python専用の画像処理ライブラリとして開発されたPillowとOpenCVは、そもそもの立ち位置が少し異なります。

Pillowと異なり、OpenCV自体は元々Pythonと関係ない独立したソフトウェアであり、OSへソフトウェアをインストールする必要があります。

  • PythonからOpenCVを使用するためにライブラリを介してOpenCVへアクセスするのです。

  • OpenCVは独立したソフトウェアとして動作するため、Python以外にも、C++やJavaといったプログラム言語からも使用できるのがメリット。

  • 機能面においても、Pillowはリサイズやトリミングといった画像の変換処理に特化したライブラリなのに対し、OpenCVはAI分野にも活用される高機能な画像処理ソフトウェアという違いがあります。

  • 例えばAIの前処理ではPillowでリサイズやトリミングといった画像の変換処理を行い、AI用に修正するにはOpenCVを利用するとよいです。

2.django-cleanupのインストール

2.1.django-cleanupとは

レコードに紐付いたファイルは、レコードが削除されると同時に削除される。
編集の場合は、編集対象のレコードをFormクラスの引数として指定して、バリデーションの後、編集処理を実行すれば、編集前の古い画像は削除する。
という便利な機能です。

2.2.django-cleanupのインストール

プロジェクト配下でコマンドを実行します。

pip install django-cleanup

2.3.settings.pyに設定する

settings.pyのINSTALLED_APPSに"django_cleanup"を追加するだけで利用できます。

INSTALLED_APPS = [ 

    ....

    'django_cleanup',

]

3.モデルの作成

3.1.モデルの『PhotoPost』、『Category』を作成

テーブルのon_deleteは実務上で扱う可能性が高いので、設定方法をよく理解しましょう。
今回はデータを削除する際、ファイルも同時に削除するようにしています。

3.2.画像の保存先の設定

/code/dproj/settings.py 編集画面
/code/photo/models.py 編集画面

3.3.マイグレーション

プロジェクト配下でのコマンド

4.管理サイトでデータ登録

4.1.admin.pyの編集

管理サイトで登録などができる設定を忘れないようにしましょう。

4.2.登録

管理画面
Category編集画面

4.3.管理画面における確認事項

  • 登録や修正、削除ができること

  • 画像の投稿ができること

  • 画像投稿の削除した場合、関連するファイルが削除されていること

次回は投稿について説明になります。

この記事が気に入ったらサポートをしてみませんか?