[PYTHON] [Django] Importieren und exportieren Sie DB-Tabellen im Excel- oder CSV-Format

Was zu implementieren

  1. Fügen Sie dem Administratorbildschirm die folgende Schaltfläche hinzu. --Importieren --Export
  2. Steuern Sie die Anzeige mit der Berechtigung der DB-Tabelle. --Import: Schreibberechtigung erforderlich --Export: Jeder ist in Ordnung

Dies wird mit einer Bibliothek namens "Django-Import-Export" erreicht. Dies ist ein zusammenfassender Artikel zur Verwendung von Django-Import-Export (Einführungsmethode).

Privilegiertes Konto

Dieses Mal habe ich ein Konto mit den folgenden Berechtigungen erstellt.

--admin: volle Autorität --guest: Nur Berechtigung anzeigen

Bildschirmanzeige

Wenn Sie als Administrator angemeldet sind

image.png←このボタンが追加される image.png

Wenn Sie als Gast angemeldet sind

image.png←このボタンが追加される

image.png

Bildschirm importieren

Das Format ist wie folgt. Reichlich. image.png

Bildschirm exportieren

Das Format ist wie folgt. Noch häufiger als der Import. image.png

Implementierung

Installation

django-import-export https://django-import-export.readthedocs.io/en/latest/

pip install django-import-export

Schreiben Sie in settings.py

setting.py


#Installierte App
INSTALLED_APPS = (
    ...
    'import_export',
)

#Stellen Sie ein, dass für die Importfunktion auf der Verwaltungssite eine Berechtigung erforderlich ist
IMPORT_EXPORT_IMPORT_PERMISSION_CODE = 'change'

Export statischer Dateien

python manage.py collectstatic

Schreiben Sie in admin.py.

Angenommen, es gibt eine Tabelle mit dem Namen "Buch" in "model.py"

admin.py


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


#Ressource
class BookResource(resources.ModelResource):
    class Meta:
        model = Book

#Management
class BookAdmin(ImportExportModelAdmin):
    resource_class = BookResource

#Anmeldung
admin.site.register(Book, BookAdmin)

eine Sache

Einfach und hoch funktional! Toll. Dieses Mal wurden alle Dateien exportiert, aber es scheint, dass Sie auch filtern können. Ich möchte herausfordern.

Recommended Posts

[Django] Importieren und exportieren Sie DB-Tabellen im Excel- oder CSV-Format
Excel, CSV Import / Export mit Django
Exportieren Sie Amazon RDS-Tabellen im CSV-Format
Exportieren Sie DB-Daten im JSON-Format
Speichern Sie TOPIX-Zeitreihen im Pickle-, CSV- und Excel-Format
So konvertieren Sie Json-Dateien in das CSV- oder EXCEL-Format
Formatieren Sie das Git-Protokoll und erhalten Sie den festgeschriebenen Dateinamen im CSV-Format
Exportieren und Ausgeben von Dateien in Python