この記事では、Django サーバにファイルをアップロードするための正確な手順について説明します。
ほとんどの Web アプリケーションや Web サイトでは、ユーザが自分のプロフ ィール写真や、ローカルコンピュータからサーバにファイルをアップロードすることができ ます。
私たちのチュートリアルでも同じことを再現します。
Django と ModelForms を使って、ファイルや画像を Web サーバにアップロードして処理する方法について見ていきましょう。
Django にファイルをアップロードする
Django でファイルのアップロードを可能にするために必要なものに、さっそく取り掛かりましょう。
1. 前提知識
前回の Django Forms の記事で、フォームのデータを取得するために、Form オブジェクトの中で request.POST を使うことを見てきました。
form = ReviewForm(request.POST,request.FILES)
|
しかし、Django にファイルをアップロードするには、別の属性 request.FILES も含める必要があります。
なぜなら、アップロードされたファイルは request.POST の代わりに request.FILES という属性に保存されるからです。
コードはこんな感じになります。
enctype = "multipart/form-data"
|
Django には、異なるファイルタイプを扱うために、ImageField と FileField という別々のモデルフィールドがあります。
画像ファイル(.jpg/.jpeg/.png など)のみをアップロードする場合は ImageField を使います。
ファイルのアップロードを許可するには、
この記事もチェック:Djangoで入力フォームを作ってユーザーの入力を受け付ける方法