Python
 Computer >> コンピューター >  >> プログラミング >> Python

DjangoでモデルデータをCSV・JSON・Excel形式にエクスポートする方法

Djangoアプリケーションを開発していると、モデルのデータをCSVJSONExcel(.xlsx)などの形式でエクスポートし、レポート作成や他システムでの利用に活かしたい場面があります。自前でスクリプトを書くことでも対応できますが、実はもっと簡単な方法があります。

この記事では、「django-import-export」というパッケージを使って、Django管理画面からワンクリックでモデルデータをエクスポートする手順を解説します。

事前準備

まずDjangoプロジェクトを作成し、アプリを追加します。urls.pyの設定やINSTALLED_APPSへのアプリ登録など、基本的なセットアップを行ってください。

次にモデルを作成します。今回の例では、views.pyやHTMLテンプレートは必要ありません。編集するのはsettings.pymodels.pyadmin.pyの3ファイルだけです。

1. パッケージのインストール

以下のコマンドでパッケージをインストールします。

pip install django-import-export

2. settings.py の設定

INSTALLED_APPSに「import_export」を追加し、ライブラリをアプリとしてプロジェクトに登録します。

INSTALLED_APPS += ['import_export']

3. モデルの作成

テスト用として、シンプルな学生情報モデルを定義します。

class StudentData(models.Model):
    name = models.CharField(max_length=100)
    standard = models.CharField(max_length=100)
    section = models.CharField(max_length=100)

4. admin.py の設定

from django.contrib import admin
from .models import StudentData
from import_export import resources
from import_export.admin import ImportExportModelAdmin

class StudentResource(resources.ModelResource):
    class Meta:
        model = StudentData

class StudentAdmin(ImportExportModelAdmin):
    resource_class = StudentResource

admin.site.register(StudentData, StudentAdmin)

ここでは、ModelResourceを継承したリソースクラスでエクスポート対象のモデルを指定し、ImportExportModelAdminを継承した管理クラスを作成して管理サイトに登録しています。これにより、管理画面にインポート・エクスポート機能が自動的に追加されます。

動作確認

開発サーバーを起動し、ブラウザで https://127.0.0.1/admin にアクセスします。対象モデルの一覧画面に「エクスポート」ボタンが表示されているので、クリックするだけでCSV、JSON、Excelなど好みの形式でデータをダウンロードできます。

  1. Pythonの回帰モデルに非線形データを適合させる方法をわかりやすく解説

    データの可視化には、Seabornライブラリを使用します。回帰モデルを構築する際には、必ず多重共線性(マルチコリニアリティ)の有無をチェックしましょう。これは、連続変数のあらゆる組み合わせ間に存在する相関関係を把握しておく必要があるためです。もし変数間に多重共線性が確認された場合は、データから除去する対策が求められます。 現実世界のデータは非線形であることが多い 実際のビジネスや研究の現場で扱うデータは、多くの場合非線形です。したがって、こうした非線形データをモデルへ適切に適合させる仕組みを見つけることが重要になります。本記事では、統計学で有名なAnscombe(アンスコム)のデータセットを用

  2. Scikit-learnで機械学習モデルを構築する方法|Python機械学習ライブラリ入門

    本記事では、Pythonの無料機械学習ライブラリ「Scikit-learn」を使った学習モデルの構築方法を解説します。Scikit-learnはオープンソースで提供されている機械学習ライブラリで、ランダムフォレスト、サポートベクターマシン(SVM)、k近傍法(k-NN)など、多彩なアルゴリズムをサポートしています。また、NumPyやSciPyと直接連携して動作するため、数値計算との親和性が高く、初心者から実務者まで幅広く利用されています。1. データセットのインポートまずは分析対象となるデータセットを読み込みます。Pandasのread_csvメソッドを使えば、URLを指定するだけでCSV形式