在python中自定义一个终端命令
这里我们想要将一个csv文件中的数据导入到数据库中,就可以定义一个终端命令,直接一行命令就可以将我们文件中的数据导入到数据库中,特别的简单
首先,我们先创建一个py文件
management/commands/import_candidate.py
接下来,我们就可以在这个py文件中定义终端命令了
import csv from django.core.management import BaseCommand from interview.models import Candidate class Command(BaseCommand): help = '从一个CSV文件的内容中导入候选人列表,导入到数据库中' def add_argument(self, parser): parser.add_argument('--path', type=str) def handle(self, *args, **kwargs): path = kwargs['path'] with open(path, 'rt', encoding='gbk') as f: reader = csv.reader(f, dialect='excel', delimiter=';') for row in reader: candidate = Candidate.object.create( username=row[0], city=row[1], phone=row[2], bachelor_school=row[3], major=row[4], degree=row[5], test_score_of_general_ability=row[6], paper_score=row[7] ) print(candidate)
然后, 我们就可以在终端执行命令了
python manage.py import_candidate --path ~/recruitment/应聘信息.csv
终于,文件中的数据就导入到数据库中了