Djangoでファイルをデータベースにアップロードする方法

DjangoでFileFieldフィールドを使用すると、ファイルをデータベースにアップロードできます。以下は、Djangoでファイルをアップロードしてデータベースに保存する方法を説明した簡単な例です。

  1. Djangoアプリケーションを作成し、ファイルフィールドのフィールドを含むクラスをモデル内で定義します。この例では、「FileModel」というモデルを作成し、ファイルをデータベースの「file」フィールドに保存します。
from django.db import models

class FileModel(models.Model):
    file = models.FileField(upload_to='uploads/')
  1. DjangoのModelFormクラスを継承したフォームクラスを作成します。そのフォームクラスで、ファイルフィールドをFileFieldとして定義します。
from django import forms
from .models import FileModel

class FileForm(forms.ModelForm):
    class Meta:
        model = FileModel
        fields = ('file',)
  1. ファイルアップロード処理をビュー関数内で処理するビュー関数を用意しておきます。この例では、ファイルをデータベースに格納し、成功メッセージをユーザーに返します。
from django.shortcuts import render
from .forms import FileForm

def upload_file(request):
    if request.method == 'POST':
        form = FileForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return render(request, 'success.html')
    else:
        form = FileForm()
    return render(request, 'upload.html', {'form': form})
  1. ファイルアップロード用のフォームを表示するHTMLテンプレートを作成します。フォームでは、{% csrf_token %} タグを使用してクロスサイトリクエストフォージェリ攻撃を防ぎます。
<form method="post" enctype="multipart/form-data">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">上传文件</button>
</form>
  1. ファイルのアップロード完了メッセージを表示するためのHTMLテンプレートを作成する
<h1>文件上传成功!</h1>
  1. URL 設定にビュー関数を追加します。
from django.urls import path
from .views import upload_file

urlpatterns = [
    path('upload/', upload_file, name='upload'),
]

Djangoでデータベースにファイルをアップロードする基本手順は以上です。ユーザーがファイルアップロード送信フォームを送信すると、ファイルはデータベースの”file”フィールドに保存されます。必要に応じて、上記のコードを変更および最適化できます。

bannerAds