python - 如何将 CSV 文件导入 django 模型

标签 python django csv graph

我有这样的 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()

关于python - 如何将 CSV 文件导入 django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39962977/

相关文章:

python - CSV 列到 Python 中的数组

python - 获取多个列表共有的字符串元素的索引

python - 来自一个多处理管理器的多个队列

python - 测试所有字典项是否为 'True' 的快速方法

python - Django Admin - 显示 M2M 模型的中间字段

javascript - 将数据从 Django View 获取到 JS 以在页面上执行的最佳实践?

python - Django 信号如何工作?

Javascript 加载多个 csv 并创建全局可达数组

linux - 基于列连接两个 csv 文件

php - Codeigniter csv 文件类型显示为 text/x-fortran