Djangoで画像アップロード機能作ってみる

概要

Djangoで画像アップロードから、S3への保存までをやってみた。

ざっくり手順

  1. モデルの作成: 画像を保存するためのモデルを作成。
  2. フォームの作成: 画像アップロード用のフォームを作成。
  3. APIの作成: 画像アップロードと成功ページのAPI作成。
  4. HTMLファイルの作成: 画像アップロード用のテンプレートと成功ページのHTMLファイルを作成。
  5. URLパターンの設定: APIをURLにマッピング。
  6. メディアファイルの設定: メディアファイルを管理するための設定を追加。

実際にやってみる

今回は食事メニューの画像をアップする。

1.モデルの作成

imageのところが特殊。

ローカルのimages/ディレクトリにアップした画像が保存されていく。

2.フォームの作成

Djangoのフォームクラスを作成。

3.APIの作成

formクラスを用いて画像をDBに保存。

4.HTMLファイルの作成

upload画面。

成功画面。

5.URLパターンの設定

urls.pyで該当のAPIにマッピング。

26~のは開発環境の時、urlに画像保存先のpathを追加するもの。

これでAPIが走るように。

6.メディアファイルの設定

*メディアファイルとは
画像、動画、音声ファイルとかユーザがWEBアプリにあげるファイルのこと
Djangoではメディアファイルを管理するため設定が必要

settings.pyにファイル保存先の設定追記。

今回はS3をするため、上記指定。

画像アップしてみる

上記フォームより、画像をアップ。

各種libraryがないとAPIでエラーを吐くのでインストールする。(django-storages等)

images/ディレクトリに画像が登録されていることを確認。

DBにも登録されていること確認。(Django管理画面からの確認はadmin.pyへの追記が必要)

デプロイすれば、S3上で画像が保存される。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です