You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将CSV文件数据批量导入Django SQLite数据库及配置报错处理

你的实现思路是正确的,核心逻辑(读取CSV字段映射到Django模型后存入数据库)本身没有问题,报错仅因为你直接运行独立Python脚本时没有初始化Django运行环境,系统无法读取项目配置、加载模型。

报错原因

你引入的Staff模型属于Django ORM的组件,依赖Django的全局配置(包括INSTALLED_APPS、数据库连接配置等)才能正常工作,直接运行独立脚本时Django没有加载对应配置,因此抛出配置异常。

解决方案

有两种常用的解决方式:

方式一(推荐):使用Django自定义命令实现导入

这种方式不需要手动处理配置加载,完全符合Django的开发规范:

  • 在你的staff应用目录下,创建层级目录management/commands,并在两个子目录中都新增空的__init__.py文件,让Django可以识别自定义命令
  • 在commands目录下新建import_staff.py文件,写入如下代码:
import csv
from django.core.management.base import BaseCommand
from staff.models import Staff

class Command(BaseCommand):
    help = '从users.csv导入员工数据到Staff表'

    def handle(self, *args, **options):
        with open('users.csv') as csv_file:
            csv_reader = csv.DictReader(csv_file, delimiter=',')
            staff_list = []
            for row in csv_reader:
                staff_list.append(Staff(
                    firstname=row['firstname'],
                    lastname=row['lastname'],
                    email=row['email']
                ))
            # 批量插入,效率远高于循环save
            Staff.objects.bulk_create(staff_list)
        self.stdout.write(self.style.SUCCESS(f'成功导入{len(staff_list)}条员工数据'))
  • 回到Django项目根目录,运行命令python manage.py import_staff即可完成导入。

方式二:给独立脚本手动添加Django环境初始化

如果你坚持用原来的独立脚本运行,只需要在脚本最开头添加Django环境初始化代码即可,修改后的完整代码如下:

import os
import django
import csv
# 请将下面的your_project_name替换为你自己的Django项目名称
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project_name.settings')
django.setup()

from staff.models import Staff

with open('users.csv') as csv_file:
    csv_reader = csv.DictReader(csv_file, delimiter=',')
    staff_list = []
    for row in csv_reader:
        staff_list.append(Staff(
            firstname=row['firstname'],
            lastname=row['lastname'],
            email=row['email']
        ))
    Staff.objects.bulk_create(staff_list)
# 注意:with语法会自动关闭文件,不需要额外调用csv_file.close()

直接运行修改后的脚本即可正常导入数据。

内容的提问来源于stack exchange,提问作者a298b112

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:27:03