Skip to main content
 首页 » 编程设计

python之如何将 CSV 文件导入 Django 模型

2024年10月17日23fff_TT

我有这样的 Django 模型

class Revo(models.Model):            
    SuiteName = models.CharField(max_length=255) 
    Test_Case = models.CharField(max_length=255) 
    FileName = models.CharField(max_length=255) 
    Total_Action = models.CharField(max_length=255) 
    Pass = models.CharField(max_length=255) 
    Fail = models.CharField(max_length=255) 
    Exe_Time = models.CharField(max_length=255) 
    Result = models.CharField(max_length=255) 
    create_date = models.DateTimeField(default=datetime.datetime.now) 
 
    class Meta: 
        verbose_name_plural = "Revo" 

我有这样的 CSV 文件

SuiteName,Test Case,FileName,Total Action,Pass,Fail,Exe Time,Result 
DEMO_TEST_SUITE,Testcase 1,file1,82,0,108,0:27:52,FAIL 
DEMO_TEST_SUITE,Testcase 2,file2,86,0,108,0:27:52,FAIL 
DEMO_TEST_SUITE,Testcase 3,file3,820,0,108,0:27:52,FAIL 
DEMO_TEST_SUITE,Testcase 4,file4,182,0,108,0:27:52,FAIL 
DEMO_TEST_SUITE,Testcase 5,file5,102,0,108,0:27:52,FAIL 
DEMO_TEST_SUITE,Testcase 6,file6,111,0,108,0:27:52,FAIL 

如何将此 csv 数据导入我的 Django 模型?另外,有什么方法可以直接从数据库中绘制图表吗?

请您参考如下方法:

您可以使用内置的 csv module将您的 csv 文件转换为 dict like object :

import csv 
 
with open('import.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
        # The header row values become your keys 
        suite_name = row['SuiteName'] 
        test_case = row['Test Case'] 
        # etc.... 
 
        new_revo = Revo(SuiteName=suite_name, TestCase=test_case,...) 
        new_revo.save()