要将CSV文件加载到Django模型中,你需要执行以下步骤:
django-import-export
,提供更方便的导入导出功能。以下是一个使用Python内置库csv
和Django ORM将CSV文件加载到模型的示例:
django-import-export
(可选)pip install django-import-export
django-import-export
在settings.py
中添加:
INSTALLED_APPS = [
...
'import_export',
]
假设你有一个简单的模型Person
:
# models.py
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField()
# import_csv.py
import csv
from myapp.models import Person
def import_csv(file_path):
with open(file_path, newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
Person.objects.create(
first_name=row['first_name'],
last_name=row['last_name'],
email=row['email']
)
# 调用函数导入CSV文件
import_csv('path/to/your/file.csv')
django-import-export
导入CSV文件首先,创建一个资源类:
# resources.py
from import_export import resources
from myapp.models import Person
class PersonResource(resources.ModelResource):
class Meta:
model = Person
然后,在管理后台中使用:
# admin.py
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from .models import Person
from .resources import PersonResource
@admin.register(Person)
class PersonAdmin(ImportExportModelAdmin):
resource_class = PersonResource
最后,访问Django管理后台,使用导入功能上传CSV文件。
clean
方法进行数据验证。通过以上步骤,你可以成功将CSV文件加载到Django模型中。
领取专属 10元无门槛券
手把手带您无忧上云