Python自定义终端命令
阅读原文时间:2023年09月02日阅读:4

在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

终于,文件中的数据就导入到数据库中了