Как импортировать CSV-файл в модели django

#python #django #csv #graph

#python #django #csv #График

Вопрос:

У меня есть такие модели 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? Кроме того, есть ли какой-либо способ построить графики из этих данных непосредственно из базы данных?

Ответ №1:

Вы можете использовать встроенный csv-модуль, чтобы превратить ваш csv-файл в объект, подобный dict:

 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()