[PYTHON] Behandeln Sie CSV-Dateien mit Django (Django-Import-Export)

Als ich eine App zur Verwaltung der Restaurantkosten erstellt habe Da frühere Daten sofort importiert werden mussten, fand ich ein nützliches Plug-In. Ich denke, es kann verwendet werden, um in Zukunft eine große Menge von Daten wie Aktienkursdaten zu verwalten.

Entwicklungsumgebung

Beispielmodell

models.py


from django.db import models
from datetime import datetime


class Category(models.Model):
    category_name = models.CharField(max_length=255,unique=True)


class Shop(models.Model):
    shop_name = models.CharField(max_length=255,unique=True)
    flag = models.IntegerField(verbose_name="Flagge")
    category = models.ForeignKey(Category, on_delete = models.PROTECT, verbose_name="Kategorie")


class Cost(models.Model):
    date = models.DateField(verbose_name="Datum",default=datetime.now)
    shop = models.ForeignKey(Shop, on_delete = models.PROTECT, verbose_name="Speichername")
    price = models.IntegerField(verbose_name="Geldbetrag", help_text="Eingabe in halber Breite")
    memo = models.CharField(verbose_name="Bemerkungen", max_length=500, blank=True)
    created_at = models.DateTimeField(verbose_name='Eingetragenes Datum', auto_now_add=True)
    updated_at = models.DateTimeField(verbose_name='Datum und Uhrzeit aktualisieren', auto_now=True)

Um die Kosten für Restaurants zu verwalten, gibt es drei Modelle wie Kategorie, Lieferant, Geldbetrag usw. Der Rest ist wie in models.py.

Installation von django-import-export

$ pipenv install django-import-export

Das Obige ist bei Verwendung von pipenv. Wenn Sie mit pip installieren, können Sie dies mit $ pip install django-import-export tun.

Fügen Sie "import_export" zu settings.py hinzu

settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #···Kürzung
    'import_export', #Hier hinzufügen
]

Fügen Sie "import_export" zu INSTALLED_APPS in settings.py unter dem Projekt hinzu

Fügen Sie Einstellungen zu admin.py hinzu

admin.py


from django.contrib import admin
from import_export import resources
from import_export.admin import ImportExportModelAdmin
from .models import Category, Shop, Cost

#Erstellen Sie eine Klasse, die ModelResource erbt, um sie in das Kategoriemodell zu integrieren
class CategoryResource(resources.ModelResource):
    class Meta:
        model = Category

#Erstellen Sie eine Klasse, die ModelResource erbt, um sie in das Shop-Modell zu integrieren
class ShopResource(resources.ModelResource):
    class Meta:
        model = Shop

#Erstellen Sie eine Klasse, die ModelResource erbt, um sie in das Kostenmodell zu integrieren
class CostResource(resources.ModelResource):
    class Meta:
        model = Cost


@admin.register(Category)
#Erstellen Sie eine Admin-Klasse, die ImportExportModelAdmin erbt
class CategoryAdmin(ImportExportModelAdmin):
    ordering = ['id']
    list_display=('id', 'category_name')

    # resource_Setzen Sie die Klasse auf eine Klasse, die ModelResource erbt
    resource_class = CategoryResource


@admin.register(Shop)
#Erstellen Sie eine Admin-Klasse, die ImportExportModelAdmin erbt
class ShopAdmin(ImportExportModelAdmin):
    ordering = ['id']
    list_display=('id', 'shop_name', 'flag', 'category')

    # resource_Setzen Sie die Klasse auf eine Klasse, die ModelResource erbt
    resource_class = ShopResource


@admin.register(Cost)
#Erstellen Sie eine Admin-Klasse, die ImportExportModelAdmin erbt
class CostAdmin(ImportExportModelAdmin):
    ordering = ['id']
    list_display=('id', 'date', 'shop', 'price', 'memo')

    # resource_Setzen Sie die Klasse auf eine Klasse, die ModelResource erbt
    resource_class = CostResource

Eine Klasse, die ModelResource und erbt Erstellen Sie eine Admin-Klasse, die "ImportExportModelAdmin" erbt Schreiben Sie einfach eine Klasse, die "ModelResource" in "resource_class" erbt. So stellen Sie die definierte Ressourcenklasse auf dem Verwaltungsbildschirm zur Verfügung Es ist möglicherweise einfacher zu verstehen, wenn Sie glauben, dass es mit admin.py verknüpft ist.

Greifen Sie auf eine URL / einen Administrator zu

ss.png Die Import- und Exportschaltflächen werden wie im Bild gezeigt angezeigt. Damit können Sie tatsächlich importieren und exportieren. ss 1.png

Übrigens unterstützt es neben "csv" auch "xls", "xlsx", "tsv", "json" und "yaml". Überraschend praktisch. Ich habe jedoch das Gefühl, dass die Verarbeitungsgeschwindigkeit bei vielen Daten etwas langsam ist. .. ..

Referenzierte Site

https://qiita.com/kira_puka/items/14a1a604a428a4c68884 https://django-import-export.readthedocs.io/en/stable/index.html

Recommended Posts

Behandeln Sie CSV-Dateien mit Django (Django-Import-Export)
Behandeln Sie Excel-CSV-Dateien mit Python
Laden Sie Dateien mit Django hoch
Arbeiten mit JSON-Dateien in Matlab
Umgang mit statischen Dateien bei der Bereitstellung in der Produktion mit Django
Verwalten Sie Django-Konfigurationsdateien mit Python-Decouple
Excel, CSV Import / Export mit Django
Arbeiten mit mehreren Django-Projekten unter Apache (WSGIDaemonProcess)
Lesen und Schreiben von CSV-Dateien mit Numpy
Internationalisierung mit Django
CRUD mit Django
Versuchen Sie, mit django-import-export csv-Daten zu django hinzuzufügen
Behandeln Sie Zip-Dateien mit japanischen Dateinamen in Python 3
Konfigurieren Sie ein Modul mit mehreren Dateien in Django
Authentifizieren Sie Google mit Django
Django 1.11 wurde mit Python3.6 gestartet
Entwicklungsverdauung mit Django
PDF mit Django ausgeben
Markdown-Ausgabe mit Django
Verwenden Sie Gentelella mit Django
Twitter OAuth mit Django
Erste Schritte mit Django 1
Behandle Excel mit Python
Mail mit Django senden
Behandle Rabbimq mit Python
Datei-Upload mit Django
Verwenden Sie WENIGER mit Django
Pooling mechanisieren mit Django
Verwenden Sie MySQL mit Django
[Python] CSV-Dateien lesen
Django ab heute
Entfernen Sie Überschriften aus CSV-Dateien mit mehreren Formaten mit Python
Erste Schritte mit Django 2
Erstellen Sie Heroku, Flask, Python, Nyanko Bulletin Board mit "CSV-Datei"
Konvertieren Sie nur den Serienwert des Datums in der CSV-Datei mit awk
Lesen Sie CSV mit Python-Pandas
Fangen Sie mit Django an! ~ Tutorial ⑤ ~
Erstellen Sie eine API mit Django
Extrahieren Sie Twitter-Daten mit CSV
Mach Django mit CodeStar (Python3.8, Django2.1.15)
Stellen Sie Django serverlos mit Lambda bereit
Python3 + Django ~ Mac ~ mit Apache
Erste Schritte mit Python Django (1)
Erstellen Sie eine Homepage mit Django
Lesen und Schreiben von CSV-Dateien
Sortieren von Bilddateien mit Python (2)
Fangen Sie mit Django an! ~ Tutorial ④ ~
Sortieren Sie große Dateien mit Python
Sortieren von Bilddateien mit Python (3)
Erste Schritte mit Python Django (4)
Erstellen Sie eine Webanwendung mit Django
Erste Schritte mit Python Django (3)
Kombinieren Sie Fast API mit Django ORM
[Tipps] Behandle Athena mit Python
Fangen Sie mit Django an! ~ Tutorial ⑥ ~
Bilddateien mit Python sortieren
Verwenden Sie Django, um Tweet-Daten zu speichern
Dateien mit teraterm übertragen [Hinweis]
Integrieren Sie PDF-Dateien in Python