Dieser Artikel verwendet die Django-Import-Export-Bibliothek, um die von Ihnen erstellte CSV-Datei in Django zu lesen. django-import-export ist eine Bibliothek, mit der Sie CSV-Dateien vom Verwaltungsbildschirm importieren und exportieren können. Auf diese Weise erstellen wir dieses Mal ein Modell wie Book, Publisher usw. und lesen sogar die zugehörige CSV-Datei (eins zu eins oder eins zu eins). Außerdem möchte ich die Eindrücke beschreiben, die ich verwendet habe.
Offizielle Website: django-import-export
・ Personen, die die Daten ihrer eigenen CSV-Datei im Django-Modell speichern möchten ・ Leute, die versucht haben, Django-Import-Export zu verwenden, aber nicht funktioniert haben ・ Personen, die den Eins-zu-Eins- und den Viele-zu-Eins-Inhalt der Datenbank kennen
Bitte installieren Sie die folgenden Pakete.
pip install django django-import-export
django-admin startproject config .
python manage.py startapp Book
Da das Projekt und das Modell mit dem obigen Befehl erstellt werden können, fügen Sie in settings.py zusätzliche Apps und Module hinzu.
# config/settings.py
INSTALLED_APPS = [
"import_export",#django-import-Erforderlich, um den Export zu verwenden
"Book",#App diesmal erstellt
]
Dieses Mal werden wir drei Modelle erstellen. Beschreiben Sie die zuvor erstellten Modelle des Buches wie folgt.
#Book/models.py
from django.db import models
class Publisher(models.Model):
name = models.CharField("Name des Herausgebers",max_length=100,help_text="der Herausgeber")
class Book(models.Model):
title = models.CharField("Titel",max_length=100,help_text="本のTitel")
publisher = models.ForeignKey(Publisher,on_delete=models.CASCADE)
class BookPrice(models.Model):
book = models.OneToOneField(Book,on_delete=models.CASCADE)
price = models.IntegerField("Listenpreis",help_text="本のListenpreis")
Der Inhalt des Modells ist wie folgt. ・ Buch hat viele Beziehungen zum Verlag ・ BookPrice und Book haben eine Eins-zu-Eins-Beziehung
Um CSV-Dateien in diese Modelle zu importieren, legen Sie sie auf dem Verwaltungsbildschirm fest. Hier kommt Django-Import-Export ins Spiel. Die konkrete Methode wird abgeschlossen, indem Sie nur mit dem Administrator spielen.
#Book/admin.py
from django.contrib import admin
from import_export import resources
from import_export.admin import ImportMixin
from .models import Book,BookPrice,Publisher
class PublisherAdmin(ImportMixin,admin.ModelAdmin):
class PublisherResource(resources.ModelResource):
class Meta:
model = Publisher
fields = ("id","name",)
resource_class = PublisherResource
class BookAdmin(ImportMixin,admin.ModelAdmin):
class BookResource(resources.ModelResource):
class Meta:
model = Book
fields = ("id","title","publisher",)
resource_class = BookResource
class BookPriceAdmin(ImportMixin,admin.ModelAdmin):
class BookPriceResource(resources.ModelResource):
class Meta:
model = BookPrice
fields = ("id","book","price",)
resource_class = BookPriceResource
admin.site.register(Publisher,PublisherAdmin)
admin.site.register(Book,BookAdmin)
admin.site.register(BookPrice,BookPriceAdmin)
** Legen Sie die Details der CSV-Datei fest, die mit Resource importiert werden soll. Beschreiben Sie die Spalte, die in Feldern gelesen werden soll. Zusätzlich zu den Feldern gibt es import_id_fields usw., und Sie können die ID als Befehl angeben. Darüber hinaus können Sie das Format ändern, das nur CSV akzeptiert, und festlegen, ob importiert werden soll, auch wenn sich die Daten ändern.
Erstellen Sie von hier aus drei CSV-Dateien in Excel. Wenn Sie wie unten gezeigt auf ein anderes Modell zeigen, können Sie eine Verknüpfung herstellen, indem Sie die zu verknüpfende ID-Nummer eingeben. Zum Beispiel zeigen "Kimi no Koe" und "Kimi no Oto" im Buch Objekte des Verlags Nakagawa Bunko. BookPrice's Book hat eine Eins-zu-Eins-Beziehung, daher haben BookPrice und Book dieselbe ID-Nummer.
python manage.py createsuperuser #Ich wurde viel gefragt, aber wie es geschrieben steht
python manage.py runserver
Wenn Sie zum Verwaltungsbildschirm von Django gehen, können Sie die drei zuvor erstellten Modelle auf dem Verwaltungsbildschirm sehen. Wenn Sie hier auf Publisher klicken, wird der folgende Bildschirm angezeigt. IMPORT wird in der oberen rechten Ecke dieses Bildschirms angezeigt. Importieren Sie daher von hier aus. Anschließend wird das von Ihnen erstellte Modell registriert. Es ist auch mit dem Modell verknüpft, überprüfen Sie es daher bitte.
In diesem Artikel habe ich Django-Import-Export verwendet, um die Daten im Django-Modell zu registrieren. Insbesondere haben wir drei Modelle erstellt und gezeigt, dass jedes eine entsprechende Beziehung zu anderen Modellen hat. Die Datenbeziehung kann jedoch durch Angabe ihrer IDs beibehalten werden. Wenn ich eine Chance habe, möchte ich als nächstes versuchen, ein Viele-zu-Viele-Modell zu erstellen.
Recommended Posts